0

JBoss Server에 배포 할 Apache Struts를 사용하여 웹 응용 프로그램을 개발하고 있습니다. 개발을 위해 eclipse 사용하기.struts를 사용하는 웹 응용 프로그램에서 ClassNotFoundException이 발생했습니다.

모든 * .do 요청을 ActionServlet으로 전달하도록 web.xml을 구성했습니다.

JSP 페이지 (abc.jsp)에는 action = "newgoal.do"가있는 양식이 있습니다.

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

내가 클래스의 경로가 올바른지 확인했습니다 :

스트럿 - config.xml 파일은 다음과 같은 항목이 있습니다.

다른 모든 .do 전달은 내 웹 응용 프로그램에서 완벽하게 작동합니다. 나는 오류가 될 수있는 것을 추측 할 수

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) 

: 나는 abc.jsp에서 양식을 제출하면 , 나는 다음과 같은 예외를 얻을. 내 응용 프로그램이 다른 모든 클래스가 정상적으로 작동 할 때 특정 클래스를로드 할 수없는 이유는 무엇입니까? 도와주세요.

+0

클래스가 JBoss 설치의 WEB-INF/classes 아래에 있습니까? – Chakra

+0

문제없이로드/인스턴스화하는 다른 모든 클래스를 수행하지는 않지만 수행하지는 않습니다. –

답변

1

클래스는 WEB-INF/classes 아래에 있거나, WEB-INF/lib 아래의 .jar 파일 안에 있어야합니다. 확인하십시오.

+0

다른 모든 동작 클래스는 모두 잘 작동하며 WEB-INF/classes 또는 WEB-INF/lib의 jar 파일의 일부로 존재하지 않습니다. 그래서 나는 이것이 어떻게 혼자서 문제가 될 수 있는지 이해하지 못합니다. –

+0

그들은 어디에 위치합니까? – Tommi

+0

.java 파일은 'Java resources : src'폴더에 있습니다. META-INF 폴더에는 'MANIFEST.MF'폴더가 하나 있습니다. WEB-INF/lib 폴더가 비어 있습니다. 그리고 제 응용 프로그램은 대부분 잘 작동합니다. 내가 여기서 무엇을 놓치고 있니? –

1

아마도 당신의 행동에 뭔가가 정적일까요? 나는 똑같은 문제가 있었다. 하나의 정적 변수가 존재하지 않는 속성의 값으로 초기화되고 동작이 초기화되지 않습니다.

관련 문제