2011-02-02 3 views
1

Eclipse (Java EE/Helios) IDE, struts2 및 Tomcat 7.0.6을 사용하고 있습니다. 어제 내 웹 응용 프로그램이 정상적으로 작동했지만 알 수없는 변경으로 인해 응용 프로그램이 중단되고 서버가 시작되지만 더 이상 제대로 작동하지 않습니다. .jsp 파일을 보려고 할 때 메시지로 인사합니다 :Tomcat이 Struts 2를로드하지 못했습니다 (필터 struts2 시작 제외).

description 요청한 리소스() 을 사용할 수 없습니다.

나는 'Add.jsp을'이클립스를 통해 Tomcat 서버를 시작하고로드하려고 할 때 콘솔에서 보면이 날이 오류를 제공

(심지어에서 모든 오류를 넣어하기로 결정하면) 페이지 :

... 
INFO: Starting service Catalina 
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.6 
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext filterStart 
SEVERE: Exception starting filter struts2 
java.lang.NoClassDefFoundError: javax/servlet/Filter 
    at java.lang.ClassLoader.findBootstrapClass(Native Method) 
    at java.lang.ClassLoader.findBootstrapClassOrNull(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1488) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252) 
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382) 
    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040) 
    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error filterStart 
Feb 2, 2011 1:38:08 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/StrutsTest] startup failed due to previous errors 
Feb 2, 2011 1:38:09 PM org.apache.catalina.core.StandardContext filterStart 
SEVERE: Exception starting filter struts2 
java.lang.NoClassDefFoundError: javax/servlet/Filter 
    at java.lang.ClassLoader.findBootstrapClass(Native Method) 
    at java.lang.ClassLoader.findBootstrapClassOrNull(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
... 

이것은 이전에 작성한 모든 struts2 응용 프로그램에 문제가있는 것 같습니다. Eclipse 및/또는 내 PC를 다시 시작하는 것이 도움이되지 않습니다.

<?xml version="1.0" encoding="UTF-8"?> 

<web-app id="WebApp_9" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <display-name>Development Environments</display-name> 
    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <welcome-file-list> 
     <welcome-file>Add.jsp</welcome-file> 
    </welcome-file-list> 

</web-app> 

내가 didn를하지만 (최신 버전으로 내 클래스 경로에 특정 및 .jar를 업데이트 시도했다 : 여기

(각 프로젝트 전반에 걸쳐 매우 유사하다) 내의 Web.xml의 복사본입니다 그 일이 기대 되 지 않음). 아무도 잘못 될 수 있다는 것을 알고 있습니까? 필요한 것이 무엇인지 알면 더 많은 정보를 제공하게되어 기쁩니다.

+0

보기 당신이'servlet-api' JAR을 놓치고있는 것처럼. 그것은 Tomcat과 함께 제공되어야합니다. –

+1

다른 .jar 파일 (catalina.jar, jasper.jar, tomcat-api.jar, catalina-ant)과 함께 C : \ apache-tomcat-7.0.6 \ lib 디렉토리에 'servlet-api.jar' .jar, etc) servlet-api.jar을 다른 디렉토리에 저장 하시겠습니까? 아니면 어떻게 든 포함시켜야합니까? – Tasyne

답변

0

먼저 Tomcat 서버 로그를 검사하여 시작할 때 Tomcat에 몇 가지 유형의 치명적인 오류가 발생하는지 확인하십시오.

예외는 서블릿 API JAR을 찾을 수 없다는 것을 나타내지 만 올바른 위치에 JAR이있는 것으로 나타납니다.

Eclipse에서 응용 프로그램을 실행하고 있습니까? 그렇다면 Eclipse가 Tomcat을 제대로 시작하지 못하는 것일 수 있습니다. Tomcat을 수동으로 시작하고 Eclipse없이 응용 프로그램을 배포하려고하면 어떻게됩니까?

업데이트

동작 이클립스 Tomcat을 시작하거나 우리는 문제의 일부로 Eclipse를 배제 할 수 있습니다 수동으로 시작 여부를 일치했다입니다.

내가 시도 할 다음

  • 는 간단한 서블릿 프로젝트를 배포 시도하거나 심지어는 도움이 될 수있는 JSP — a는 실행아무것도
  • 톰캣 —를 다시 설치하면이 일이 언급 알고 갑자기 최근에 톰캣 설치에 뭔가가 일어 났을 수도 있습니다.
+0

로그에 치명적인 오류가 표시되지 않았으므로 모든 로그를 이전/디렉토리로 이동 한 다음 startup.bat (Windows 기반이고 Eclipse를 사용하고 있습니다)를 사용하여 수동으로 Tomcat을 시작했습니다. 그런 다음 웹 브라우저를 사용하여 http : // localhost : 8080/DevEnvironments/Add.jsp로 이동했습니다. "description 요청한 리소스 (/DevEnvironments/Add.jsp)를 사용할 수 없습니다." (앱을 배포 할 때 추가 단계가 필요한지 확실하지 않습니다.) 새로 생성 된 로그 파일에는 오류가 없지만 어쨌든 붙여 넣었습니다. http://pastebin.com/K5mk0HLe – Tasyne

+0

피드백에 따라 답변을 수정했습니다. –

1

apache lib 폴더에 servlet-api 경로를 추가해야했습니다. 이상하지만 그게 작동 한 후

0

적어도 helloworld 종류의 Struts2 앱을 실행하려면 이러한 jars가 필요합니다.

  • struts2 코어 - *. 항아리
  • xwork - 코어 - *.. 항아리 *
  • 몬즈 로깅 - -.
  • OGNL 항아리 * 항아리
  • 가공-IO * .JAR
  • 몬즈 LANG * .JAR
  • 몬즈 * 파일 업로드의 .jar
  • 프리 마커 - * 항아리
  • javaassist -.. * 항아리
1

내가 이런 종류의 기본 클래스가 갑자기 사라진 것처럼 보일 톰캣/이클립스 여러 번 봤어요. 나는 Eclipse/Tomcat이 때때로 혼란 스러울 것이라고 생각한다. 자동 배포 기능을 사용하는 서버를 사용하도록 설정 한 상태에서 약간의 변경 작업을 수행하면 더 자주 발생하는 것으로 보입니다.

이렇게되면 서버가 종료됩니다. 나는 "깨끗한"프로젝트를 실행 한 다음 Tomcat 서버를 정리하고 서버 작업 디렉토리를 정리합니다. 서버를 다시 시작하면 모든 것이 다시 시작됩니다.

+0

당신, 선생님, 저의 하루를 구했습니다. –

0

당신이 좋아하는 아파치 로그를 봄으로써 당신은 단지 누락을 발견 할 수 평민 - lang3-XX

을 포함한 모든 병이 있는지 확인하십시오 : java.lang.ClassNotFoundException가 :에 의한

org.apache합니다. commons.lang3.StringUtils org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1556) 에서 org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1711) 에서 ... 55 이상

관련 문제