项目详细信息:使用JavaBridge完成任务的PHP项目。我对这个项目的更新只包含PHP文件。
我已经看到了许多线程。我的java编译版本是JDK1.6,在我的服务器上运行的Java版本是:
java version "1.6.0_30"
我对这在我的设备上本地工作感到非常沮丧,但是当我在服务器上运行它失败时,tomacat日志提供了以下内容:
java.lang.UnsupportedClassVersionError: com/nlrt/reportgenerator/ReportGenerator : Unsupported major.minor version 51.0 (unable to load class com.nlrt.reportgenerator.ReportGenerator)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2840)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1668)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at php.java.bridge.Util.classForName(Util.java:1518)
at php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445)
at php.java.bridge.Request.handleRequest(Request.java:458)
at php.java.bridge.Request.handleOneRequest(Request.java:510)
at php.java.servlet.PhpJavaServlet.handleLocalConnection(PhpJavaServlet.java:202)
at php.java.servlet.PhpJavaServlet.handlePut(PhpJavaServlet.java:250)
at php.java.servlet.PhpJavaServlet.doPut(PhpJavaServlet.java:261)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at php.java.servlet.PhpCGIFilter.doFilter(PhpCGIFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:701)
这与此线程类似:如何修复java.lang.UnsupportedClassVersionError:Unsupported major。次要版本
我要做的是检查并查看是否所有的java文件都是用相同的版本编译的。版本51,根据该线程是J2SE 7。你需要确保没有任何东西依赖于J2SE 7号。有可能PHP-Java桥是用J2SE 7编译的,其余的是在JDK 1.6上。
已通过使用已部署和备份的原始下载的 JavaBridge 版本解决。不确定我在本地下载的版本是否是J2SE7,但这个错误还是消失了。:)
备份总是救命稻草。
我的一个班级档案有这个问题。
我从中了解到的是,我使用java 7构建war文件,而tomact使用java 6。
我只是换了Java7:)开始为我工作。