`
wxinpeng
  • 浏览: 581586 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

FCKeditor 与 struts2.0 上传图片时出错

阅读更多
最近在struts2用到 FCKeditor,在上传图片时总是出错。
严重: Servlet.service() for servlet SimpleUploader threw exception 
java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location] 
 
跟踪了一下源代码,发现struts2的filter拦截了上传文件的动作,
//org.apache.struts2.dispatcher.Dispatcher.java
public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException {
        // don't wrap more than once
        if (request instanceof StrutsRequestWrapper) {
            return request;
        }
        String content_type = request.getContentType();
        if (content_type != null && content_type.indexOf("multipart/form-data") != -1) {
            MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class);
            request = new MultiPartRequestWrapper(multi, request, getSaveDir(servletContext));
        } else {
            request = new StrutsRequestWrapper(request);
        }
        return request;
    }
 
在这里又找不到MultiPartRequest.class的实现类。于是出错了。
只要不让struts2拦截处理上传事件,就应该没问题了。
修改web.xml,把原来的
  
<filter-mapping>         
  <filter-name>struts2</filter-name>         
  <url-pattern>*.action</url-pattern>         
</filter-mapping>         
     
<filter-mapping>         
  <filter-name>struts2</filter-name>         
  <url-pattern>*.jsp</url-pattern>         
</filter-mapping>  
  
<filter-mapping>    
<filter-name>struts2</filter-name>    
<url-pattern>/struts/*</url-pattern>    
</filter-mapping> 
  如果只是改为<url-pattern>*.action</url-pattern>之后标签又会出错的,所以再加一个<url-pattern>*.jsp</url-pattern>
OK!!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics