无法打开应用程序模块 -> 调用 javac 时出错。需要完整的 JDK(不仅仅是 JRE)



我们的服务器有Java8和Javac8。但是,当尝试访问应用程序中的模块(使用servlet开发)时,它会显示异常,显示为"需要完整的JDK(而不仅仅是JRE)">

使用命令时。。。

[pdpadmin@HKDVLE805 /]$ javac -version
javac 1.8.0_144
[pdpadmin@HKDVLE805 /]$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
[pdpadmin@HKDVLE805 /]$ which java
/PDP/current-jdk8/bin/java
[pdpadmin@HKDVLE805 /]$ which javac
/PDP/current-jdk8/bin/javac

堆栈跟踪

〔2018-08-17T14:24:2709+0800〕〔Payara 4.1〕〔警告〕〔〕〔javax.enterprise.web.core〕〔tid:_ThreadID=27 _ThreadName=http线程池::http-listener-1(3)〕〔timeMillis:15344877060709〕〔levelValue:900〕[[Servlet jsp的Servlet.service()引发异常org.apache.jaster.JasperException:PWC6345:调用javac时出错。需要完整的JDK(而不仅仅是JRE)网址:org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:92)网址:org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:378)网址:org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:119)网址:org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199Java compiler.java:208)网址:org.apache.jasper.compiler.compiler.generateClass(compiler.java:384)网址:org.apache.jasper.compiler.compiler.compiler(compiler.java:453)网址:org.apache.jasper.JspCompilationContext.compile(JspCompillationContext.java:625)网址:org.apache.jasper.servlet.JspServletWrapper.service(JspServletsWrapper.java:375)网址:org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)网址:org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)位于javax.servlet.httpHttpServlet.service(HttpServlet.java:790)网址:org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1606)网址:org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:821)网址:org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:685)网址:org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:641)网址:org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:573)网址:com.flextronics.servlet.admin.LogManagement.processRequest(LogiManagement.java:169)网址:com.flextronics.servlet.admin.LogManagement.handleRequest(LogiManagement.java:276)网址:org.springframework.web.context.support.HttpRequestHandlerServlet.service(HttpRequestHandlerServer.java:67)位于javax.servlet.httpHttpServlet.service(HttpServlet.java:790)网址:org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1606)网址:org.apache.catalina.core.StandardWrapperValv.invoke(StandardWrapperValve.java:258)网址:org.apache.catalina.core.StandardContextValv.invoke(StandardContextValv.java:160)网址:org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:654)网址:org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:593)网址:com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)网址:org.apache.catalina.core.StandardHostValv.invoke(StandardHostValve.java:155)网址:org.apache.catalina.connecter.CoyoteAdapter.doService(Coyotedapter.java:371)网址:org.apache.catalina.connecter.CoyoteAdapter.service(Coyotedapter.java:238)网址:com.sun.enterprise.v3.services.impl.ContainerMaper$HttpHandlerCallable.call(ContainerMaper.java:466)网址:com.sun.enterprise.v3.services.impl.ContainerMaper.service(ContainerMaper.java:169)网址:org.glassfish.grazzly.http.server.HttpHandler.runService(HttpHandler.java:206)网址:org.glassfish.grazzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)网址:org.glassfish.grazzy.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)网址:org.glassfish.grazzly.filterchain.ExecutorResolver$9.execute(ExecutiorResolver.java:119)网址:org.glassfish.grazzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChan.java:284)网址:org.glassfish.grazzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChan.java:201)网址:org.glassfish.grazzly.filterchain.DefaultFilterChain.execute(DefaultFilterChan.java:133)网址:org.glassfish.grazzly.filterchain.DefaultFilterChain.process(DefaultFilterChan.java:112)网址:org.glassfish.grazzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)网址:org.glassfish.grazzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:539)网址:org.glassfish.grazzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)网址:org.glassfish.grazzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)网址:org.glassfish.grazzy.strategies.WorkerThreadIOStrategie.access$100(WorkerThreadioStrategie.java:56)网址:org.glassfish.grazzy.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)网址:org.glassfish.grazzy.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593)网址:org.glassfish.grazzy.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573)在java.lang.Thread.run(线程.java:748)]]

[2018-08-17T14:24:20.711+0800][Payara 4.1][WARNING][][javax.enterprise.web][tid:_ThreadID=27_ThreadName=http线程池:http-listener-1(3)][timeMillis:15344877060711][levelValue:900][[StandardWrapperValve[LogManagement]:Servlet LogiManagement的Servlet.service()引发异常org.apache.jaster.JasperException:PWC6345:调用javac时出错。需要完整的JDK(而不仅仅是JRE)网址:org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:92)网址:org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:378)网址:org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:119)网址:org.apache.jasper.compiler.Jsr199JavaCompiler.compile(Jsr199Java compiler.java:208)网址:org.apache.jasper.compiler.compiler.generateClass(compiler.java:384)网址:org.apache.jasper.compiler.compiler.compiler(compiler.java:453)网址:org.apache.jasper.JspCompilationContext.compile(JspCompillationContext.java:625)网址:org.apache.jasper.servlet.JspServletWrapper.service(JspServletsWrapper.java:375)网址:org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)网址:org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)位于javax.servlet.httpHttpServlet.service(HttpServlet.java:790)网址:org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1606)网址:org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:821)网址:org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:685)网址:org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:641)网址:org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:573)网址:com.flextronics.servlet.admin.LogManagement.processRequest(LogiManagement.java:169)网址:com.flextronics.servlet.admin.LogManagement.handleRequest(LogiManagement.java:276)网址:org.springframework.web.context.support.HttpRequestHandlerServlet.service(HttpRequestHandlerServer.java:67)位于javax.servlet.httpHttpServlet.service(HttpServlet.java:790)网址:org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1606)网址:org.apache.catalina.core.StandardWrapperValv.invoke(StandardWrapperValve.java:258)网址:org.apache.catalina.core.StandardContextValv.invoke(StandardContextValv.java:160)网址:org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:654)网址:org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:593)网址:com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)网址:org.apache.catalina.core.StandardHostValv.invoke(StandardHostValve.java:155)网址:org.apache.catalina.connecter.CoyoteAdapter.doService(Coyotedapter.java:371)网址:org.apache.catalina.connecter.CoyoteAdapter.service(Coyotedapter.java:238)网址:com.sun.enterprise.v3.services.impl.ContainerMaper$HttpHandlerCallable.call(ContainerMaper.java:466)网址:com.sun.enterprise.v3.services.impl.ContainerMaper.service(ContainerMaper.java:169)网址:org.glassfish.grazzly.http.server.HttpHandler.runService(HttpHandler.java:206)网址:org.glassfish.grazzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)网址:org.glassfish.grazzy.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)网址:org.glassfish.grazzly.filterchain.ExecutorResolver$9.execute(ExecutiorResolver.java:119)网址:org.glassfish.grazzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChan.java:284)网址:org.glassfish.grazzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChan.java:201)网址:org.glassfish.grazzly.filterchain.DefaultFilterChain.execute(DefaultFilterChan.java:133)网址:org.glassfish.grazzly.filterchain.DefaultFilterChain.process(DefaultFilterChan.java:112)网址:org.glassfish.grazzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)网址:org.glassfish.grazzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:539)网址:org.glassfish.grazzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)网址:org.glassfish.grazzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)网址:org.glassfish.grazzy.strategies.WorkerThreadIOStrategie.access$100(WorkerThreadioStrategie.java:56)网址:org.glassfish.grazzy.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)网址:org.glassfish.grazzy.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593)网址:org.glassfish.grazzy.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573)在java.lang.Thread.run(线程.java:748)]]

尽管Javac和Java是一样的,但它显示出了卓越之处。你能帮我理解为什么我会得到JasperException吗?

您的应用程序使用JSP,要编译它们,Payara需要使用JDK而不仅仅是JRE运行。检查Payara Server中配置了哪条路径-通常它使用默认的Java安装,但也可以在glassfish/config/asenv.confbin/asadmin中配置。如果有疑问,请在启动Payara Server时检查正在运行的进程。

最新更新