javax.servlet.ServletException: javax.servlet.ServletException: Specified RequestProcessor not compatible with sa
        at net.sf.struts.saif.SAIFSpringPlugin.initRequestProcessorClass(SAIFSpringPlugin.java:99)
        at net.sf.struts.saif.SAIFSpringPlugin.init(SAIFSpringPlugin.java:40)
        at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
        at javax.servlet.GenericServlet.init(GenericServlet.java:69)
        at com.caucho.server.dispatch.ServletConfigImpl.createServletImpl(ServletConfigImpl.java:646)
        at com.caucho.server.dispatch.ServletConfigImpl.createServlet(ServletConfigImpl.java:587)
        at com.caucho.server.dispatch.ServletManager.init(ServletManager.java:154)
        at com.caucho.server.webapp.Application.start(Application.java:1654)
        at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:621)
        at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:
        at com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:509)
        at com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:153)
        at com.caucho.server.webapp.ApplicationContainer.start(ApplicationContainer.java:670)
        at com.caucho.server.host.Host.start(Host.java:420)
        at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:621)
        at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:
        at com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:509)
        at com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:153)
        at com.caucho.server.host.HostContainer.start(HostContainer.java:504)
        at com.caucho.server.resin.ServletServer.start(ServletServer.java:971)
        at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:621)
        at com.caucho.server.deploy.AbstractDeployControllerStrategy.start(AbstractDeployControllerStrategy.java:
        at com.caucho.server.deploy.DeployController.start(DeployController.java:517)
        at com.caucho.server.resin.ResinServer.start(ResinServer.java:551)
        at com.caucho.server.resin.Resin.init(Resin.java)
        at com.caucho.server.resin.Resin.main(Resin.java:625)
在网上搜下相关的信息,也没有找到答案,在线等大虾指导

解决方案 »

  1.   

    同样的问题,
    严重: Servlet /student_score_manager threw load() exception
    javax.servlet.UnavailableException: javax.servlet.ServletException: 
    Specified RequestProcessor not compatible with saif.
    网上搜了好多,有一种解决方案 把:一下纯COPY:
    SAIF 目前支持struts1.1 的版本 所以可能配置好的项目会报如下异常:
     Specified RequestProcessor not compatible with saif. 异常 这就是saif与 struts 的不兼容导致的!
    解决方案:
    把SAIFSpringPlugin反编译,将saif-sping.jar中的那个class删除了
    然后自己在src下面建个相同的包,下面建个同名的java类。
    这样,在struts1.3+ spring3.1环境下也没问题了。
     
    SAIFSpringPlugin.java
    package net.sf.struts.saif;
    import javax.servlet.ServletException;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.config.ControllerConfig;
    import org.apache.struts.config.ModuleConfig;/**
     * 
     * <pre>
     * Title:SAIFSpringPlugin,替代saif-spring.jar中的SAIFSpringPlugin
     * Description: Title:SAIFSpringPlugin,
     * 增加对DelegatingRequestProcessor和DelegatingTilesRequestProcessor的支持
     * </pre>
     * 
    ***/
    public class SAIFSpringPlugin implements org.apache.struts.action.PlugIn { private static final Log log; private static final String DelegatingRequestProcessor = "org.springframework.web.struts.DelegatingRequestProcessor"; private static final String DelegatingTilesRequestProcessor = "org.springframework.web.struts.DelegatingTilesRequestProcessor"; public SAIFSpringPlugin() {
    } public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {
    initRequestProcessorClass(servlet, config);
    } public void destroy() {
    } protected void initRequestProcessorClass(ActionServlet servlet, ModuleConfig config) throws ServletException {
    String saifProcessorClassname = net.sf.struts.saif.SAIFSpringRequestProcessor.class.getName();
    String saifTilesProcessorClassname = net.sf.struts.saif.SAIFTilesSpringRequestProcessor.class.getName();
    ControllerConfig ctrlConfig = config.getControllerConfig();
    String configProcessorClassname = ctrlConfig.getProcessorClass();
    if (configProcessorClassname.equals(org.apache.struts.action.RequestProcessor.class.getName()) || configProcessorClassname.endsWith(saifProcessorClassname) || configProcessorClassname.equals(DelegatingRequestProcessor)) {
    ctrlConfig.setProcessorClass(saifProcessorClassname);
    if (log.isInfoEnabled()) {
    log.info("Loading the saif request processor without Tiles support");
    }
    return;
    }
    if (configProcessorClassname.equals(org.apache.struts.tiles.TilesRequestProcessor.class.getName()) || configProcessorClassname.endsWith(saifTilesProcessorClassname) || configProcessorClassname.equals(DelegatingTilesRequestProcessor)) {
    ctrlConfig.setProcessorClass(saifTilesProcessorClassname);
    if (log.isInfoEnabled()) {
    log.info("Loading the saif request processor with Tiles support");
    }
    return;
    }
    try {
    Class saifProcessorClass = net.sf.struts.saif.SAIFSpringRequestProcessor.class;
    Class saifTilesProcessorClass = net.sf.struts.saif.SAIFTilesSpringRequestProcessor.class;
    Class configProcessorClass = Class.forName(configProcessorClassname);
    if (!saifProcessorClass.isAssignableFrom(configProcessorClass) && !saifTilesProcessorClass.isAssignableFrom(configProcessorClass)) {
    String msg = "Specified RequestProcessor not compatible with saif.";
    throw new ServletException(msg);
    }
    } catch (Exception ex) {
    throw new ServletException(ex);
    }
    if (log.isDebugEnabled()) {
    log.debug("saif plugin class successfully registered");
    }
    } static {
    log = LogFactory.getLog(net.sf.struts.saif.SAIFSpringPlugin.class);
    }}重新启动服务器试试成功了吗!
    完整的成功项目地址:
    http://download.csdn.net/detail/goumin1818/4353279
      

  2.   

    但是个人不想这么麻烦,直接下载后,拷贝了 他的saif-spring.jar 重新编译后 冒出其他两个错误!弄了一整天了,哎....大神在哪里,拯救 我们这些 程序猿吧!
    PS:本来是用spring 的拦截器的,也是配置问题,不是有bug就是不执行到interceptor.郁闷啦