【问题标题】:"HTTP status 500 - Internal server error" as upload a file over the server“HTTP 状态 500 - 内部服务器错误”作为通过服务器上传文件
【发布时间】:2019-06-20 07:55:42
【问题描述】:

我正在尝试通过本地主机服务器上传文件,但在运行它时出现内部服务器错误“实例化 servlet 类时出错”。

我已经在fileupload包下的UploadServelet.java类中编写了通过服务器上传文件的代码,并且还完成了web.xml文件中servlet的映射”,但仍然出现错误。


Index.jsp

<div class="container">
    <form  method="POST" action="upload" enctype="multipart/form-data">

    <label for="fname"> Select Input File: </label>                           
    <input type="file" name="myFile" id="myFile"    /> <br/>
    <input type="submit" value="upload" name="upload" id="upload" />

    </form>
</div>

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
    <display-name>Circedb</display-name>

    <servlet>
    <servlet-name>UploadServelet</servlet-name>
    <servlet-class>src.fileupload.UploadServelet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>UploadServelet</servlet-name>
    <url-pattern>/upload</url-pattern>
    </servlet-mapping>
    <session-config>
    <session-timeout>
        30
    </session-timeout>
    </session-config>
    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

错误日志: 类型异常报告 实例化 servlet 类的消息错误 [src.fileupload.UploadServelet] 说明 服务器遇到了一个意外情况,导致它无法完成请求。

例外

javax.servlet.ServletException: Error instantiating servlet class [src.fileupload.UploadServelet]
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)

根本原因

java.lang.ClassNotFoundException: src.fileupload.UploadServelet
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1363)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)

注意根本原因的完整堆栈跟踪可在服务器日志中找到。

【问题讨论】:

  • 您确定 UploadServelet 已编译吗?它的包装是什么?尝试删除 src。:&lt;servlet-class&gt;fileupload.UploadServelet&lt;/servlet-class&gt;
  • UploadServlet 编译完成。fileupload 是包含 UploadServlet 类的包。尝试删除src。从 src.fileupload.UploadServelet 螺母然后 tomcat 服务器抛出错误“Tomcat 服务器无法启动”

标签: java file-upload servlet-3.0


【解决方案1】:

如果UploadServelet编译上传正确

你需要通过删除 src 来更新它的包。:

 <servlet-class>fileupload.UploadServelet</servlet-class>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多