相关疑难解决方法(0)

如何使用JSP/Servlet将文件上传到服务器?

如何使用JSP/Servlet将文件上传到服务器?我试过这个:

<form action="upload" method="post">
    <input type="text" name="description" />
    <input type="file" name="file" />
    <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

但是,我只获取文件名,而不是文件内容.当我添加 enctype="multipart/form-data"<form>,然后request.getParameter()返回null.

在研究期间,我偶然发现了Apache Common FileUpload.我试过这个:

FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request); // This line is where it died.
Run Code Online (Sandbox Code Playgroud)

不幸的是,servlet抛出了一个没有明确消息和原因的异常.这是堆栈跟踪:

SEVERE: Servlet.service() for servlet UploadServlet threw exception
javax.servlet.ServletException: Servlet execution threw an exception
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:313)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at …
Run Code Online (Sandbox Code Playgroud)

java jsp servlets file-upload java-ee

671
推荐指数
7
解决办法
54万
查看次数

如何在Eclipse项目中导入javax.servlet API?

我想在Eclipse中使用Servlet进行开发,但它说javax.servlet无法解析包.如何将javax.servlet包添加到Eclipse项目中?

java eclipse servlets

313
推荐指数
9
解决办法
61万
查看次数

如何在不面对java.lang.ClassNotFoundException的情况下将JAR库添加到WAR项目中?Classpath vs Build Path vs/WEB-INF/lib

我应该如何添加JAR库在Eclipse中一个WAR项目没有遇到java.lang.ClassNotFoundExceptionjava.lang.NoClassDefFoundError

CLASSPATH环境变量似乎并没有工作.在某些情况下,我们将JAR文件添加到Eclipse项目的Build Path属性中以使代码编译.我们有时需要将JAR文件放在/WEB-INF/libJava EE Web应用程序的文件夹中,以使代码在该JAR内的类上运行.

我不完全理解为什么CLASSPATH不起作用,在哪些情况下我们应该将JAR添加到Build Path以及何时应该放置这些JAR /WEB-INF/lib.

eclipse jar war classpath java-ee

10
推荐指数
1
解决办法
2万
查看次数

FileUpload:找不到DeferredFileOutputStream类?

我正在使用apache FileUpload来处理..文件上传.我在码头上用它.servlet看到multipart请求,但在执行时抛出NoClassDefFoundError异常:

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
  throws ServletException, IOException 
{
  boolean isMultipart = ServletFileUpload.isMultipartContent(req);
  if (isMultipart) {
    try {
      FileItemFactory factory = new DiskFileItemFactory();

      ServletFileUpload upload = new ServletFileUpload(factory);

      List items = upload.parseRequest(req); //  exception
      ...
Run Code Online (Sandbox Code Playgroud)

抛出:

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
   at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
Run Code Online (Sandbox Code Playgroud)

引起的:

java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
Run Code Online (Sandbox Code Playgroud)

除了commons-fileupload-1.2.2.jar之外,我们还需要包含一个额外的jar吗?

我的目标是只上传一个文件并将其写入磁盘.

谢谢

java servlets apache-commons-fileupload

8
推荐指数
1
解决办法
2万
查看次数

获取错误缺少运行时依赖项:java.lang.NoClassDefFoundError:org/apache/commons/fileupload/FileItem

我正在尝试设置Maven,JSF和Primefaces项目.但是,当我运行该项目时,我得到以下错误

com.sun.faces.config.ConfigurationException: 
Source Document: jar:file:/D:/Personal%20Work/eclipse%2032%20Bit/workspace/Java%20EE
/Spring/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps
/ch18_SpringWebFlowAndJSF/WEB-INF/lib/primefaces-3.5.jar!/META-INF/faces-config.xml
Cause: Class 'org.primefaces.component.fileupload.FileUploadRenderer' is missing
 a runtime dependency: java.lang.NoClassDefFoundError: org/apache/commons/fileupload
/FileItem
Run Code Online (Sandbox Code Playgroud)

这是我的POM片段

<properties>
    <java-version>1.6</java-version>
    <org.springframework-version>3.2.3.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.7.5</org.slf4j-version>
    <jsf-version>2.2.0</jsf-version>
</properties>

    <dependency>
        <groupId>org.springframework.webflow</groupId>
        <artifactId>spring-faces</artifactId>
        <version>2.3.2.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>${jsf-version}</version>
    </dependency>

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>${jsf-version}</version>
    </dependency>

    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>3.5</version>
    </dependency>
</dependencies>

<repositories>
    <repository>  
        <id>prime-repo</id>  
        <name>PrimeFaces Maven Repository</name>  
        <url>http://repository.primefaces.org</url>  
        <layout>default</layout>  
    </repository>     
</repositories> 
Run Code Online (Sandbox Code Playgroud)

为什么我收到此错误?

谢谢

spring-webflow maven-3 primefaces jsf-2

2
推荐指数
1
解决办法
1万
查看次数