2012-12-07 9 views
0

SWT 애플리케이션 내에서 임베디드 Tomcat 웹 응용 프로그램을 시작하려고 할 때, 나는 (아래 스택 트레이스) 오류를 받고 있어요 :java.lang.ClassCastException가 바람둥이 로딩 서블릿을 시작할 때

java.lang.ClassCastException가를 : org.apache.struts.action.ActionServletjava.lang.ClassCastException가 : org.apache.jasper.servlet.JspServlet

은 내가 /lib 디렉토리/ 디렉토리에있는 항아리의 모든 통해 검색 한 및 /WEB-INF/lib 디렉토리에 존재하며 Servlet 클래스에 대한 중복 참조를 찾지 못했습니다.

응용 프로그램은 응용 프로그램의 소스 코드를 빌드하고 오류없이 성공적으로 컴파일 톰캣 6.0.36 및 스트럿 1.3.10

을 사용하고 있습니다. LIB \ < 프로젝트 >에서

Jar 파일 바람둥이 \ webapps에 \에서

eclipse\plugins\org.eclipse.jface_3.7.0.v20110928-1505.jar 
eclipse\plugins\org.eclipse.jface.text_3.7.2.v20111213-1208.jar 
eclipse\plugins\org.eclipse.swt_3.7.2.v3740f.jar 
eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.7.2.v3740f.jar 

Jar 파일 (JFace는과 SWT에 대한) 프로젝트에서 사용

lib\annotations-api.jar 
lib\axis\axis-ant.jar 
lib\axis\axis.jar 
lib\axis\commons-discovery-0.2.jar 
lib\axis\jaxrpc.jar 
lib\axis\junit.jar 
lib\axis\saaj.jar 
lib\axis\wsdl4j-1.5.1.jar 
lib\catalina.jar 
lib\com.dom.jsso.common-server.jar 
lib\commons-dbcp-1.2.1.jar 
lib\commons-logging-1.1.jar 
lib\commons-pool.jar 
lib\derby.jar 
lib\derbytools.jar 
lib\dom4j.jar 
lib\ehcache-1.1.jar 
lib\el-api.jar 
lib\hibernate3.jar 
lib\jasper.jar 
lib\jsp-api.jar 
lib\jta.jar 
lib\odmg.jar 
lib\org.springframework.asm-3.1.3.RELEASE.jar 
lib\org.springframework.beans-3.1.3.RELEASE.jar 
lib\org.springframework.context-3.1.3.RELEASE.jar 
lib\org.springframework.core-3.1.3.RELEASE.jar 
lib\org.springframework.web-3.1.3.RELEASE.jar 
lib\org.springframework.web.struts-3.1.3.RELEASE.jar 
lib\servlet-api.jar 
lib\tomcat-coyote.jar 
lib\tomcat-dbcp.jar 
lib\tomcat-juli.jar 
lib\tools\ojdbc14.jar 

다른 항아리 < 프로젝트 > \ WEB-INF \ lib

0 web.xml에의 톰캣/CONT/web.xml에의
WEB-INF\lib\antlr-2.7.2.jar 
WEB-INF\lib\commons-beanutils-1.8.0.jar 
WEB-INF\lib\commons-digester-1.8.jar 
WEB-INF\lib\commons-fileupload-1.1.1.jar 
WEB-INF\lib\commons-validator-1.3.1.jar 
WEB-INF\lib\oro-2.0.8.jar 
WEB-INF\lib\struts-core-1.3.10.jar 
WEB-INF\lib\struts-taglib-1.3.10.jar 

서블릿 부

<servlet> 
    <servlet-name>jsp</servlet-name> 
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 
    <init-param> 
     <param-name>fork</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>xpoweredBy</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <load-on-startup>3</load-on-startup> 
</servlet> 

서블릿 부

<servlet> 
     <servlet-name>action</servlet-name> 
     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
     <init-param> 
      <param-name>config</param-name> 
      <param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config-adm.xml,/WEB-INF/struts-config-ajax.xml</param-value> 
     </init-param> 
     <init-param> 
      <param-name>debug</param-name> 
      <param-value>2</param-value> 
     </init-param> 
     <init-param> 
      <param-name>detail</param-name> 
      <param-value>2</param-value> 
     </init-param> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 

오류 스택 트레이스 :

Dec 7, 2012 1:46:08 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from file [C:\projects\JSSO\com\example\conf\config.xml] 
Dec 7, 2012 1:46:08 PM com.example.tomcat.embeddedTomcat init 
INFO: Starting the tomcat bean 
Dec 7, 2012 1:46:09 PM org.apache.catalina.startup.Embedded start 
INFO: Starting tomcat server 
Dec 7, 2012 1:46:09 PM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.36 
Dec 7, 2012 1:46:10 PM org.apache.catalina.core.ApplicationContext log 
INFO: Marking servlet action as unavailable 
Dec 7, 2012 1:46:10 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet/threw load() exception 
java.lang.ClassCastException: org.apache.struts.action.ActionServlet 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1149) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.startup.Embedded.start(Embedded.java:825) 
    at com.example.tomcat.embeddedTomcat.init(embeddedTomcat.java:111) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1581) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1522) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at com.example.util.ServiceLocator.getModuleManager(ServiceLocator.java:26) 
    at com.example.SWTMain$2.run(SWTMain.java:136) 
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) 
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757) 
    at com.example.SWTMain.waitUntilExit(SWTMain.java:283) 
    at com.example.SWTMain.main(SWTMain.java:176) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at com.example.Main.invokeLoader(Main.java:138) 
    at com.example.Main.main(Main.java:123) 
Dec 7, 2012 1:46:10 PM org.apache.catalina.core.ApplicationContext log 
INFO: Marking servlet jsp as unavailable 
Dec 7, 2012 1:46:10 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet/threw load() exception 
java.lang.ClassCastException: org.apache.jasper.servlet.JspServlet 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1149) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.startup.Embedded.start(Embedded.java:825) 
    at com.example.tomcat.embeddedTomcat.init(embeddedTomcat.java:111) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1581) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1522) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at com.example.util.ServiceLocator.getModuleManager(ServiceLocator.java:26) 
    at com.example.SWTMain$2.run(SWTMain.java:136) 
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) 
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757) 
    at com.example.SWTMain.waitUntilExit(SWTMain.java:283) 
    at com.example.SWTMain.main(SWTMain.java:176) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at com.example.Main.invokeLoader(Main.java:138) 
    at com.example.Main.main(Main.java:123) 
Dec 7, 2012 1:46:10 PM org.apache.tomcat.util.modeler.Registry registerComponent 
SEVERE: Null component null:type=JspMonitor,name=jsp,WebModule=//localhost/,J2EEApplication=none,J2EEServer=none 
Dec 7, 2012 1:46:10 PM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8043 
Dec 7, 2012 1:46:10 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8043 
Dec 7, 2012 1:46:10 PM com.example.tomcat.embeddedTomcat init 
INFO: Tomcat Started 
Dec 7, 2012 1:46:11 PM org.apache.catalina.core.ApplicationDispatcher invoke 
WARNING: Servlet jsp is currently unavailable 
Dec 7, 2012 1:46:12 PM com.example.SWTMain$1 shellClosed 
INFO: Closing the application 
Dec 7, 2012 1:46:12 PM com.example.tomcat.embeddedTomcat shutdown 
INFO: Shutting down tomcat 
Dec 7, 2012 1:46:12 PM org.apache.coyote.http11.Http11Protocol destroy 
INFO: Stopping Coyote HTTP/1.1 on http-8043 
01,
+0

는 – Subin

+0

이상한 당신의 스트럿/바람둥이 버전을 게시, 스트럿츠 버전과 자바 서블릿 버전 사이의 비 호환성이 될 수 어떻게 표시하지 않고 trows의'의 ClassCastException'에가 ... –

+0

캐스팅하려고 어떤 클래스 @ SubinS - 버전을 추가했습니다 (Tomcat 6.0.36 및 Struts 1.3.10). – jeffl8n

답변

0

몇 가지 연구가 끝나면 클래스 경로에 여러 복사본 또는 스트럿 버전이 있으므로이를 제거하고 하나만 유지하십시오. 네가 말했지 만, 내가 찾은 모든 답은 이것을 가리킨다. 그래서 당신은 아마 가지고 있지만 발견하지는 못할 것이다.

또한 병 파일이 이미 포함되어 있으므로 jar 파일을 제거하십시오.

참조하십시오 struts.jar 파일이 와 같은 공통 영역에 보관하지 않아야

는/lib에 있었다. 각 struts 응용 프로그램의 WEB-INF/lib 폴더에 포함되어야합니다.

http://www.coderanch.com/t/46849/Struts/Failed-load-servlet-Struts

당신의 전쟁 lib 폴더에서 또는 글로벌 공유지 lib 디렉토리에서 Struts의 핵심 API 항아리를 제거합니다.같은 장소에 2 개의 병이 있습니다. 은 다른 클래스 로더에 의해로드되고 따라서 캐스팅은 입니다.

스트럿츠가 동일한 작업 서블릿 인스턴스에 여러 서블릿 매핑을 지원하지 않습니다 org.apache.struts.action.ActionServlet 클래스를 포함하는 정확한 항아리에 대한

http://www.liferay.com/community/forums/-/message_boards/message/6813153

검색합니다.

http://grokbase.com/t/struts/user/02bqqdrxjt/struts-1-1b2-and-sybase-easerver-4-1-0-jaguar

+0

ActionServlet 클래스에 하나의 jar 파일 (struts-core-1.3.10.jar) 만 있다는 것을 확인했습니다. jar 파일은 이미 WEB-INF \ lib 디렉토리에 있습니다. Struts 서블릿 정의에는 서블릿 매핑도 하나만 있습니다. – jeffl8n

관련 문제