错误信息如下:
java.lang.ClassCastException: org.apache.struts.action.RequestProcessor incompatible with org.apache.struts.action.RequestProcessor
at org.apache.struts.action.ActionServlet.getRequestProcessor(ActionServlet.java:855)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.sitech.ismp.util.context.SSOFilter.doFilter(SSOFilter.java:94)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:516)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.sitech.ismp.util.context.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:168)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3242)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2010)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1916)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
WEB.XML文件配置<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>
 com.sitech.ismp.util.context.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>

<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>


<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
    <filter-name>SingleSignInFilter</filter-name>
    <filter-class>
     com.sitech.sso.client.SingleSignInFilter
    </filter-class>
    <init-param>
      <param-name>configLocation</param-name>
      <param-value>/login.properties</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>SingleSignInFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>  <filter>
    <filter-name>SSOFilter</filter-name>
    <filter-class>
     com.sitech.ismp.util.context.SSOFilter
    </filter-class>
  </filter>
  <filter-mapping>
    <filter-name>SSOFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <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>*.action</url-pattern>
</filter-mapping>
  
  
<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-webProcessDesigner.xml,/WEB-INF/struts-config-system.xml,/WEB-INF/struts-config-workflow.xml,/WEB-INF/struts-config-informationService.xml,/WEB-INF/struts-config-assetmanage.xml,/WEB-INF/struts-config-iimp.xml,/WEB-INF/struts-config-pms.xml,/WEB-INF/struts-config-itresource.xml,/WEB-INF/struts-config-itresourceform.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet>
    <servlet-name>CewolfServlet</servlet-name>
    <servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class>
    <init-param>
      <param-name>storage</param-name>
      <param-value>de.laures.cewolf.storage.TransientSessionStorage</param-value>
    </init-param>
    <init-param>
      <param-name>overliburl</param-name>
      <param-value>etc/overlib.js</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
     <servlet>
          <servlet-name>DisplayChart</servlet-name>
          <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
     </servlet>
      <servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
  
   <servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
      <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
  <servlet-mapping>
  
      <servlet-name>DisplayChart</servlet-name>
      <url-pattern>/servlet/DisplayChart</url-pattern>
  </servlet-mapping>
<servlet-mapping>
    <servlet-name>CewolfServlet</servlet-name>
    <url-pattern>/chart/cewolf</url-pattern>
  </servlet-mapping>  <servlet-mapping>
    <servlet-name>CewolfServlet</servlet-name>
    <url-pattern>/cewolf</url-pattern>
  </servlet-mapping>
  
    <session-config>
    <session-timeout>60</session-timeout>
  </session-config>
  
    <mime-mapping>
    <extension>css</extension>
    <mime-type>text/css</mime-type>
  </mime-mapping>
  
  <mime-mapping>
    <extension>doc</extension>
    <mime-type>application/msword</mime-type>
  </mime-mapping>  <mime-mapping>
    <extension>svg</extension>
    <mime-type>image/svg+xml</mime-type>
  </mime-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <taglib>
<taglib-uri>struts-bean</taglib-uri>
<taglib-location>/WEB-INF/resource/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>struts-html</taglib-uri>
<taglib-location>/WEB-INF/resource/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>struts-logic</taglib-uri>
<taglib-location>/WEB-INF/resource/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>c.tld</taglib-uri>
<taglib-location>/WEB-INF/resource/c.tld</taglib-location>
</taglib>  工程使用了struts1.2和struts2都使用了,重启一下错误就不会出现了,但是过一段时间还是会报这个错误。请高手帮忙

解决方案 »

  1.   

    看了下你的异常,类转换异常,而且说的很明白。RequestProcessor对象不兼容。
    没遇见过这样的问题,我觉得应该是struts1和struts2一起用的问题,你看你的web.xml文件对struts配置部分过于复杂。
    有可能是jar包有冲突。
      

  2.   

    如果是jar不兼容,为什么是服务运行一段时间后才出现这个问题呢,很令人费解。
      

  3.   

    运行是异常,有可能是在调用的时候某个特定的场景中对象转换出问题。
    我建议你,只用一种struts2就可以了。
    没有必要用2个不是。
      

  4.   

    ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常。此类错误通常会终止用户请求。在执行任何子系统的应用程序代码时都有可能发生ClassCastException异常。通过转换,可以指示Java编译器将给定类型的变量作为另一种变量来处理。对基础类型和用户定义类型都可以转换。Java语言规范定义了允许的转换,其中大多数可在编译时进行验证。不过,某些转换还需要运行时验证。如果在此运行时验证过程中检测到不兼容,JVM就会引发ClassCastException异常。例如:Fruit f;Apple a = (Apple)f;当出现下列情况时,就会引发ClassCastException异常:1.        Fruit和Apple类不兼容。当应用程序代码尝试将某一对象转换为某一子类时,如果该对象并非该子类的实例,JVM就会抛出ClassCastException异常。2.        Fruit和Apple类兼容,但加载时使用了不同的ClassLoader。这是这种异常发生最常见的原因。在这里,需要了解一下什么是ClassLoader?你去调试下看看什么地方会出现这样的错误吧