2016-05-20 22 views
0

Java 1.6.0_07とtomcat 6.0.45バージョンを使用して、Windows OSでサーブレットとJSPを使用しているWebアプリケーションで作業しています。私のシステムから生成されたクラスファイルを服用し、Java 1.6でインストールSolarisサーバでそれを実行しようとすることによって、Tomcat 6.0バージョンでは、それはClassFormatError:クラスファイル内で不明な定数タグ58

私は同じのためにGoogleで検索された
May 20, 2016 1:41:46 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Allocate exception for servlet IpsmscRamtIsdMsgStatisticsServlet 
java.lang.ClassFormatError: Unknown constant tag 58 in class file com/abc/servlet/operator/ramt/statistics/isdstats/IpsmscRamtIsdMsgStatisticsServlet 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
     at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815) 
     at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:869) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1322) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1034) 
     at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 
     at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:495) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 
     at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) 
     at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) 
     at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) 
     at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) 
     at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) 
     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) 
     at java.lang.Thread.run(Thread.java:662) 

は、それらのいくつかは語ら休閑例外を投げています"これはJavaファイルが壊れているために発生する可能性がありますが、私のシステムとLinuxシステム(Java 1.6とTomcat 6.0バージョン)で正常に動作している同じファイルです"

助けてください。

答えて

0

エラーとして、宛先マシンのJREがクラスファイルのバージョンをデコードできないというエラーが発生しました。 https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html

また、あなたは、Solarisマシン上でjavap -verbose <class>を実行してみることができます:JLSは、Java仮想マシン仕様の§4.4を参照してください参照してください。
正常に出力された場合、Solaris jreはクラスファイルを正しく読み取ることができます。

Javaファイルを再コンパイルしないか、solarisで別のJavaバージョンを試してみてください。

関連する問題