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

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

0

サーブレットの実行でExceptionが発生

Eclipse上でstrutsを使って開発したモジュールをLinux環境へ移して実行すると以下のExceptionが発生しました。(Eclipseでの動作確認は取れています)
いろいろ調べてみると、はっきりは分かりませんが、Servletのバージョンの違いが原因っぽいな〜と考えています。
どのように解決すればよろしいでしょうか?
環境については以下の通りです。
■windows
 tomcat 5.5
  jre    1.6.0_05
■Linux
 tomcat 5.5
  jdk    1.6.0_05

画面に出力されるExceptionの内容は以下の通り。

javax.servlet.ServletException: サーブレットの実行により例外を投げました


java.lang.UnsupportedClassVersionError: Bad version number in .class file
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1853)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:875)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1330)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
    org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:117)
    org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143)
    org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:292)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:230)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


tomcatのログに出力される内容は以下の通り。

2008/03/08 19:40:08 org.apache.struts.util.RequestUtils createActionForm
致命的: フォームBean jp.co.test.bean.TestForm.class の生成エラー
java.lang.NullPointerException
        at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:212)
        at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:292)
        at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:191)
        at org.apache.struts.action.RequestProcessor.processActionForm(RequestProcessor.java:331)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:202)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:595)

2

回答

81054

閲覧

2件の回答

評価

0

両環境で、Javaのバージョンが違うんでしょう。

評価

0

解決しました。
原因はLinux側にあり、前バージョンのJavaへシンボリックリンクをはったままにしていました。

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