java.lang.ClassCastException: org.apache.struts.tiles.TilesUtilImpl
org.apache.struts.tiles.TilesRequestProcessor.initDefinitionsMapping(TilesRequestProcessor.java:126)
org.apache.struts.tiles.TilesRequestProcessor.init(TilesRequestProcessor.java:116)
StudentHostle.MyActionServlet.getRequestProcessor(MyActionServlet.java:19)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
StudentHostle.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:28)web.xml中配置:
<servlet-name>action</servlet-name>
    <servlet-class>StudentHostle.MyActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>
代码:
import org.apache.struts.action.*;
import org.apache.struts.config.*;
import javax.servlet.*;
import org.apache.struts.util.*;
public class MyActionServlet extends ActionServlet {
private static final long serialVersionUID = 1L;
protected synchronized RequestProcessor getRequestProcessor(ModuleConfig config) throws ServletException {

String key = "org.apache.struts.action.REQUEST_PROCESSOR" + config.getPrefix();
RequestProcessor processor = (RequestProcessor)getServletContext().getAttribute(key);
if (processor == null) {
try {
processor = (RequestProcessor) RequestUtils.applicationInstance("StudentHostle.MyRequestProcessor");
} catch (Exception e) {
throw new UnavailableException("Cannot initialize RequestProcessor of class " + config.getControllerConfig().getProcessorClass() + ": " + e);
}
processor.init(this, config);//说我这一行有错
getServletContext().setAttribute(key, processor);
}
return (processor); }
}
在线等

解决方案 »

  1.   

    不知道你说的是不是struts-tiles.tld
    要是的话,那里面都没有改过的啊,峭知道哪里还会有tiles了,能说清楚点吗?
    我只是配置了一下struts没加别的任何东西
      

  2.   

    代码第10行,定义和初始化processor时,可能得到Null。
    代码第17行,调用processor.init(this, config)方法可能会出现类型转换异常java.lang.ClassCastException
      

  3.   

    第十行是null可是在try
    里面用了processor = (RequestProcessor) RequestUtils.applicationInstance("StudentHostle.MyRequestProcessor");
    调出来时不是null了
      

  4.   

    processor = (RequestProcessor) RequestUtils.applicationInstance("StudentHostle.MyRequestProcessor");
    执行发生了异常,processor就会是null,
    所以
    processor !=null
    processor.init(this, config)前应该加上非空处理
      

  5.   

    我出现了同样的问题,但是,我把我的struts-config.xml文件改为以下代码,结果成功了
    你看看是不是你的struts-config.xml有问题啊,我用的是MyEclipse6.5版本,里面的包去掉asm2.2.3.jar和hibernate-annotations.jar必须去掉新手,可以加我,以后多联系,共同学习
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    <struts-config>
    <data-sources />
    <form-beans>
    <form-bean name="personForm"
    type="org.apache.struts.validator.DynaValidatorForm">
    <form-property name="password" type="java.lang.String" />
    <form-property name="id" type="java.lang.String" />
    </form-bean>
    </form-beans>
    <global-exceptions />
    <global-forwards />
    <action-mappings>
    <action attribute="personForm" input="/login.jsp"
    name="personForm" parameter="status" path="/person" scope="request"
    type="org.lxh.sshlogin.struts.action.PersonAction" validate="true">
    <forward name="suc" path="/login.jsp"></forward>
    </action>
    </action-mappings>
    <controller
    processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
    </controller>
    <message-resources
    parameter="org.lxh.sshlogin.struts.ApplicationResources" />
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames"
    value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
    </plug-in>
    <plug-in
    className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation"
    value="/WEB-INF/classes/applicationContext.xml" />
    </plug-in></struts-config>