首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个java不能工作[OpenShift+Tomact6+Git+Jboss]

为什么这个java不能工作[OpenShift+Tomact6+Git+Jboss]
EN

Stack Overflow用户
提问于 2013-05-25 15:37:13
回答 2查看 2.1K关注 0票数 0

我已经创建了Openshift应用程序,现在我正在尝试编辑它。以下是项目结构:

http://my.jetscreenshot.com/demo/20130525-t2mt-28kb

我已将此代码添加到index.html中:

代码语言:javascript
运行
复制
<form action="/uploadFile" enctype="multipart/form-data" method="post">
    <input type="file" name="uploadFile" />
    <input type="submit" />
</form>

最后,我创建了servlet文件fileUploader.java:

代码语言:javascript
运行
复制
package main.java;
import *;

@WebServlet(name = "uploadFile",urlPatterns = {"/uploadFile"})
@MultipartConfig
public class fileUploader extends javax.servlet.http.HttpServlet {

//class code
}

您可以在这里看到@WebServlet注释,我读到它是‘enought’,但是它不工作(404错误),所以我在web.xml中添加了代码:

代码语言:javascript
运行
复制
<servlet>
<servlet-name>uploadFile</servlet-name>
<servlet-class>main.java.fileUploader</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>uploadFile</servlet-name>
<url-pattern>/uploadFile</url-pattern>
</servlet-mapping>

index.html可以工作,但servlet不起作用。它现在给出了500个错误:

代码语言:javascript
运行
复制
type Exception report
message 
description The server encountered an internal error () that prevented it from fulfilling this request.
exception 

javax.servlet.ServletException: Wrapper cannot find servlet class main.java.fileUploader or a class it depends on
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:722)


root cause 

java.lang.ClassNotFoundException: main.java.fileUploader
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:722)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.

我对这个问题做了研究,但我仍然不知道问题在哪里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-25 16:02:01

如果使用Maven构建WAR,那么可能是将类从src/main/java打包到WEB-INF/classes,而不是从src文件夹打包。不同之处在于,Maven认为您的类处于默认(没有名称空间)包中,即没有任何package语句。

但是您的src配置为您的源目录,而不是src/main/java,因此它将package main.java;语句添加到您的类中,这现在与Maven默认值发生了冲突。

在您的Eclipse中,右键单击src > Build >从构建路径中移除。然后导航到src\main\java,右键单击> Build >。让Eclipse还修复包语句,即删除package main.java;或创建包文件夹(如src\main\java\main\java\fileUploader.java )。(顺便说一句,不建议在类名中使用camel大小写。)

票数 1
EN

Stack Overflow用户

发布于 2013-05-25 15:40:36

希望您已经将fileUploader Servlet类放置在WEB/ class /main/java目录中。

在WEB/ lib direcotyry中包含了包含fileUploader类的库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16751138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档