0

Apache Strutsを使用してJBoss ServerにデプロイするWebアプリケーションを開発しています。 eclipseを開発用に使用する。strutsを使用したWebアプリケーションのClassNotFoundException

すべての* .doリクエストをActionServletに転送するようにweb.xmlを設定しました。

JSPページ(abc.jsp)には、action = "newgoal.do"のフォームがあります。

のstruts-config.xmlファイルには、次のエントリがあります。

<action path="/newgoal" type="com.misys.trng.AddingNewGoalAction"> 
</action> 

私はクラスのパスが正しいことを確認しました。

他のすべての.do転送は私のWebアプリケーションでは問題なく動作しています。私はabc.jspからフォームを送信 とき、私は次の例外を取得:

2:13:43,793 ERROR [RequestProcessor] No action instance for path /newgoal could be created 
java.lang.ClassNotFoundException: com.misys.trng.AddingNewGoalAction 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:117) 
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143) 
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:280) 
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:218) 
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) 
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
at java.lang.Thread.run(Unknown Source) 

私はエラーが何ができるか測深することはできません。他のすべてが正常に動作している場合、アプリケーションで1つのクラスをロードできないのはなぜですか?助けてください。

+0

JBossインストールのWEB-INF/classesの下にクラスが存在しますか? – Chakra

+0

問題を発生させずにロード/インスタンス化している他のすべてのクラスを実行しません。 –

答えて

1

クラスはWEB-INF/classesの下に存在するか、.jarファイルの中にWEB-INF/libの下にある必要があります。確認してください。

+0

他のActionクラス(すべて正常に動作しています)は、WEB-INF/classesまたはWEB-INF/libのjarの一部として存在しません。だから私はそれだけで問題になるかもしれない方法を理解していない。 –

+0

彼らはどこに位置していますか? – Tommi

+0

.javaファイルは、「Java resources:src」というフォルダにあります。 META-INFフォルダーには、MANIFEST.MFという単一のフォルダーがあります。 WEB-INF/libフォルダは空です。そして、私のアプリケーションは、ほとんどの場合、正常に動作しています。私はここで何が欠けていますか? –

1

おそらく、あなたの行動に何か静的なものがありますか?私も同じ問題がありました。 1つの静的変数が、存在しないプロパティの値で初期化され、アクションが初期化されませんでした。

関連する問題