Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ClassFormatErrorについて

こんにちは。
初めて「ClassFormatError」になって、手どまっています。
環境は、

 1.開発を、WinXP SP1 jdk1.5.0_04 tomcat-6.0.13
 2.公開を、WinXP SP2 jdk1.5.0_04 tomcat-6.0.13

で行おうとして、以下の三種類行ってみました。

 (1) 1.のbeanを2.にcopy
 (2) 2.から1.のbeanをcopy・貼り付け
 (3) 2.でcompile

いずれも以下のエラーになりました(長くて恐縮です)。
2008/04/10 11:51:57 org.apache.catalina.core.StandardWrapperValve invoke
致命的: サーブレット jsp のServlet.service()が例外を投げました
java.lang.ClassFormatError: Incompatible magic value 321196035 in class file beans/BengiOperatorBean
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1175)
    at org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1155)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2392)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
    at org.apache.jasper.compiler.Generator.generate(Generator.java:3374)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:210)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:595)

という状態なのですが、何を考えれば良いかがもうひとつ不明です。
なお、(3)の後でのtomcatのrebootはやっていません。
よろしくお願いいたします。

4

回答

12714

閲覧

4件の回答

評価

0

まずはエラーメッセージを検索。

評価

0

自己レスです。
やっとこtomcatのshutdownができたので、rebootしてみてOKでした。
結果的に、

 1.sourceを渡して、
 2.公開機でcompileする。
 3.その後reboot

という手順で良いようです。
お騒がせいたしました。

評価

0

なんでclassファイルまたはjar/warを持っていかないの?
classファイルでも、場合によってはエラーの原因になりえるけど。

評価

0

$さん、こんにちは。

 1.最初にclassを持っていってこのErrorになったものです。
 2.「検索」の結果は、要するに「ファイルの破損」「読めない形式」に類するものでした。

大分前に、(探してみて分からなかったのですが)SP2だと「BOS?」が異なるのでというようなことを教えてもらったことがあったのですが。
ともあれ、決着したとしてもJavaでありながらソースから再コンパイルの決着はないだろうが、と自分でも思います。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。