2007-10-10 15:18:55 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]
at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:136)
at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:476)
at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:486)
at com.opensymphony.xwork2.inject.ContainerImpl$9.call(ContainerImpl.java:517)
at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:542)
at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:515)
at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:697)
at org.apache.struts2.dispatcher.FilterDispatcher.prepareDispatcherAndWrapRequest(FilterDispatcher.java:330)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]
at org.apache.struts2.config.BeanSelectionProvider$ObjectFactoryDelegateFactory.create(BeanSelectionProvider.java:246)
at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:134)
... 25 more
文件如下!
============FileUploadAction.java======================
package tutorial;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class FileUploadAction extends ActionSupport {
    private static final long serialVersionUID = 572146812454l ;
    private static final int BUFFER_SIZE = 16 * 1024 ;
    private File myFile;
    private String contentType;
    private String fileName;
    private String imageFileName;
    private String caption;
    public void setMyFileContentType(String contentType) {
        this .contentType = contentType;
   }     public void setMyFileFileName(String fileName) {
        this .fileName = fileName;
   }     public void setMyFile(File myFile) {
        this .myFile = myFile;
   } 
   
    public String getImageFileName() {
        return imageFileName;
   }     public String getCaption() {
        return caption;
   }     public void setCaption(String caption) {
        this .caption = caption;
   }     private static void copy(File src, File dst) {
        try {
         System.out.println("=============A=============");
           InputStream in = null ;
           OutputStream out = null ;
            try {    
               in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);
               out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);
                byte [] buffer = new byte [BUFFER_SIZE];
                while (in.read(buffer) > 0 ) {
                   out.write(buffer);
               } 
           } finally {
                if (null != in) {
                   in.close();
               } 
                if (null != out) {
                   out.close();
               } 
           }
       } catch (Exception e) {e.printStackTrace();
       } } 
    private static String getExtention(String fileName) {
        int pos = fileName.lastIndexOf( " . " );
        return fileName.substring(pos);
   } 
   @Override
    public String execute(){        
       imageFileName = new Date().getTime() + getExtention(fileName);
       File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/UploadImages") + "/" + imageFileName);
       copy(myFile,imageFile);
       System.out.println("==================success!!!");
        return SUCCESS;} } 
============================web.xml==========================
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version ="2.4" 
    xmlns ="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > 
    <display-name>Struts2Fileupload</display-name> <filter> 
        <filter-name>struts-cleanup</filter-name> 
        <filter-class> org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> 
</filter>  
<filter> 
        <filter-name>struts2</filter-name> 
        <filter-class> 
            org.apache.struts2.dispatcher.FilterDispatcher
        </filter-class> 
    </filter> <filter-mapping> 
        <filter-name>struts-cleanup</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <filter-mapping> 
        <filter-name>struts2</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <welcome-file-list> 
        <welcome-file>FileUpload.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 
========================struts.xml=======================
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd" > 
<struts> 
    <package name="fileUploadDemo" extends ="struts-default"> 
          <action name ="fileUpload" class ="tutorial.FileUploadAction"> 
            <interceptor-ref name="fileUploadStack"/> 
            <result name ="success">/ShowUpload.jsp</result> 
        </action > 
    </package> 
</struts> 
=======================FileUpload.jsp========
<s:fielderror />
    <s:form action ="fileUpload" method ="POST" enctype ="multipart/form-data"> 
        <s:file name ="myFile" label ="Image File"/> 
        <s:textfield name ="caption" label ="Caption"/>        
        <s:submit/> 
    </s:form> 
</body> 
==============ShowUpload.jsp============
<body> 
    <div style ="padding: 3px; border: solid 1px #cccccc; text-align: center"> 
        <img src ='UploadImages/<s:property value ="imageFileName" /> '/>
        <s:property value ="caption" /> 
    </div> 
</body> 
UploadImages文件夹已经建了.环境是tomcat5.5 ,myeclipce6.0,哪位高手知道错在哪里啊?