Java 使用Servlet ServletFileUpload上载

Java 使用Servlet ServletFileUpload上载,java,file-upload,servlet-3.0,Java,File Upload,Servlet 3.0,我是Java/JavaWeb新手。目前,我正在学习如何上传文件到服务器

我是Java/JavaWeb新手。目前,我正在学习如何上传文件到服务器<我面临一个问题,我已经试着解决这个问题两天了。我在stackoverflow和其他资源中搜索了很多,但没有任何结果

这是我正在学习的资源

我确信本教程在我使用Ubuntu时使用的是“c:\”中的Windows

这是我的代码:

<web-app>
....
<context-param> 
    <description>Location to store uploaded file</description> 
    <param-name>file-upload</param-name> 
    <param-value>
         /home/someone/test_upload/
     </param-value> 
</context-param>
....
</web-app>
我尽力调试servlet。我写了一行又一行,直到我发现一个错误

ServletFileUpload upload = new ServletFileUpload(factory);
这是错误页面:

HTTP Status 404 - /testupload/

type Status report

message /testupload/

description The requested resource is not available.

VMware vFabric tc Runtime 2.9.3.RELEASE/7.0.42.A.RELEASE
为了便于分析,我认为我的工厂设置有问题,例如工厂.setSizeThreshold(maxMemSize)factory.setRepository(新文件(“\\resources\\”)

也许我的分析也错了。请考虑设置,因为我正在使用Ubuntu。 你能帮我修一下吗

----------------------------------我的eclipse控制台--------------------------------

Mar 27, 2014 6:40:33 PM com.springsource.tcserver.security.PropertyDecoder <init>
INFO: tc Runtime property decoder using memory-based key
Mar 27, 2014 6:40:33 PM com.springsource.tcserver.security.PropertyDecoder <init>
INFO: tcServer Runtime property decoder has been initialized in 342 ms
Mar 27, 2014 6:40:34 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Mar 27, 2014 6:40:34 PM com.springsource.tcserver.serviceability.rmi.JmxSocketListener init
INFO: Started up JMX registry on 127.0.0.1:6969 in 145 ms
Mar 27, 2014 6:40:34 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1213 ms
Mar 27, 2014 6:40:34 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Mar 27, 2014 6:40:34 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: VMware vFabric tc Runtime 2.9.3.RELEASE/7.0.42.A.RELEASE
Mar 27, 2014 6:40:34 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor /home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/conf/Catalina/localhost/testupload.xml
Mar 27, 2014 6:40:34 PM org.apache.catalina.startup.SetContextPropertiesRule begin
WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:test_upload' did not find a matching property.
Mar 27, 2014 6:40:35 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testupload]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1635)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2397)
    at java.lang.Class.getDeclaredFields(Class.java:1806)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:263)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:142)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 10 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    ... 24 more

Mar 27, 2014 6:40:35 PM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor /home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/conf/Catalina/localhost/testupload.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testupload]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1635)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

Mar 27, 2014 6:40:35 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/webapps/manager
Mar 27, 2014 6:40:36 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/webapps/ROOT
Mar 27, 2014 6:40:36 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Mar 27, 2014 6:40:36 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1526 ms
2014年3月27日下午6:40:33 com.springsource.tcserver.security.PropertyDecoder
信息:使用基于内存的密钥的tc运行时属性解码器
2014年3月27日下午6:40:33 com.springsource.tcserver.security.PropertyDecoder
信息:tcServer运行时属性解码器已在342毫秒内初始化
2014年3月27日下午6:40:34 org.apache.coyote.AbstractProtocol init
信息:正在初始化ProtocolHandler[“http-bio-8080”]
2014年3月27日下午6:40:34 com.springsource.tcserver.servicability.rmi.JmxSocketListener init
信息:在145毫秒内于127.0.0.1:6969启动JMX注册表
2014年3月27日下午6:40:34 org.apache.catalina.startup.catalina加载
信息:初始化在1213毫秒内处理
2014年3月27日下午6:40:34 org.apache.catalina.core.StandardService startInternal
信息:开始服务Catalina
2014年3月27日下午6:40:34 org.apache.catalina.core.StandardEngine startInternal
信息:启动Servlet引擎:VMware vFabric tc Runtime 2.9.3.RELEASE/7.0.42.A.RELEASE
2014年3月27日下午6:40:34 org.apache.catalina.startup.HostConfig部署描述符
信息:部署配置描述符/home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/conf/Catalina/localhost/testupload.xml
2014年3月27日下午6:40:34 org.apache.catalina.startup.SetContextPropertiesRule begin
警告:[SetContextPropertiesRule]{Context}将属性“source”设置为“org.eclipse.jst.jee.server:test_upload”未找到匹配的属性。
2014年3月27日下午6:40:35 org.apache.catalina.core.ContainerBase addChildInternal
严重:ContainerBase.addChild:开始:
org.apache.catalina.LifecycleeException:无法启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/testupload]]
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
位于org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)
位于org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1635)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:744)
原因:java.lang.NoClassDefFoundError:org/apache/commons/fileupload/FileItemFactory
位于java.lang.Class.getDeclaredFields0(本机方法)
位于java.lang.Class.privateGetDeclaredFields(Class.java:2397)
位于java.lang.Class.getDeclaredFields(Class.java:1806)
位于org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
位于org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:263)
位于org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:142)
位于org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
在org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)上
位于org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
位于org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
在org.apache.catalina.util.LifecycleSupport.FireLifecycleSupport(LifecycleSupport.java:119)上
位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10多
原因:java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 还有24个
2014年3月27日下午6:40:35 org.apache.catalina.startup.HostConfig部署描述符
严重:部署配置描述符/home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/conf/Catalina/localhost/testupload.xml时出错
java.lang.IllegalStateException:ContainerBase.addChild:start:org.apache.catalina.LifecycleException:无法启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/testupload]]
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
位于org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)
Mar 27, 2014 6:40:33 PM com.springsource.tcserver.security.PropertyDecoder <init>
INFO: tc Runtime property decoder using memory-based key
Mar 27, 2014 6:40:33 PM com.springsource.tcserver.security.PropertyDecoder <init>
INFO: tcServer Runtime property decoder has been initialized in 342 ms
Mar 27, 2014 6:40:34 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Mar 27, 2014 6:40:34 PM com.springsource.tcserver.serviceability.rmi.JmxSocketListener init
INFO: Started up JMX registry on 127.0.0.1:6969 in 145 ms
Mar 27, 2014 6:40:34 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1213 ms
Mar 27, 2014 6:40:34 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Mar 27, 2014 6:40:34 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: VMware vFabric tc Runtime 2.9.3.RELEASE/7.0.42.A.RELEASE
Mar 27, 2014 6:40:34 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor /home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/conf/Catalina/localhost/testupload.xml
Mar 27, 2014 6:40:34 PM org.apache.catalina.startup.SetContextPropertiesRule begin
WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:test_upload' did not find a matching property.
Mar 27, 2014 6:40:35 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testupload]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1635)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2397)
    at java.lang.Class.getDeclaredFields(Class.java:1806)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:263)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:142)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 10 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    ... 24 more

Mar 27, 2014 6:40:35 PM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor /home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/conf/Catalina/localhost/testupload.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testupload]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1635)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

Mar 27, 2014 6:40:35 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/webapps/manager
Mar 27, 2014 6:40:36 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/someone/Documents/springsource/vfabric-tc-server-developer-2.9.3.RELEASE/base-instance/webapps/ROOT
Mar 27, 2014 6:40:36 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Mar 27, 2014 6:40:36 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1526 ms