3

我正在尝试编写一个简单的 Web 应用程序并部署在 jboss EAP 6 上。该应用程序名为“webapp”,我能够构建并将其部署到 jboss。上下文根是 /webapp。

然后我能够访问 localhost:8080/webapp 并返回一个“Hello World”,该“Hello World”是由 eclipse 在 /src/main/webapp 生成的默认 index.jsp 打印的。

但是,当我尝试实际访问 localhost:8080/webapp/sessionsetup 的 servlet 时,出现以下错误:

JBWEB000065: HTTP Status 404 - /webapp/sessionsetup

JBWEB000309: type JBWEB000067: Status report

JBWEB000068: message /webapp/sessionsetup

JBWEB000069: description JBWEB000124: The requested resource is not available.

下面是我的 servlet 的简单代码:

@WebServlet("/sessionsetup")
public class SessionSetup extends HttpServlet{

private static final Logger log = LoggerFactory.getLogger(SessionSetup.class);

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
    log.info(this.toString());
    log.info("Do get method is called");

    response.setContentType("text/xml");

    PrintWriter printer = response.getWriter();
    printer.println("<html>");
    printer.println("<head>" + "</head>");
    printer.println("<body>");
    printer.println("<h1>" + "Welcome! You are in session setup" + "</h1>");
    printer.println("</body>");
    printer.println("</html>");

    printer.close();
    }

}

任何人都可以评论我可能会错过什么吗?有没有办法找到一些没有这个错误的日志信息?我试图在 /standalone/log 中查找 server.log,但找不到任何东西。

4

6 回答 6

3

可能有 2 个原因
(1) 您可以在 jboss server
virtual-server name="default-host" enable-welcome-root="false"> 中配置您的standalone.xml 在 enable-welcome-root
中使用 false 而不是 true

(2)您没有正确完成控制器的映射

于 2014-07-05T13:13:58.470 回答
0

问题已解决。这似乎是 web.xml 的问题 - 一旦删除,servlet 就可用。

于 2013-08-19T00:19:17.563 回答
0

Clean Server在很多情况下都可以解决这个问题。

于 2021-02-18T09:11:10.897 回答
0

我认为您必须添加已设置上下文根的 WEB-INF/jboss-web.xml 文件

<jboss-web>
    <context-root>contextroot</context-root>
</jboss-web>
于 2016-08-01T14:31:37.777 回答
0

这只是我对这个问题如何发生以及我解决问题的方式的经验。

这个问题发生在没有war文件的情况下。当我部署

哈维蒂奥

监控它需要的jboss

乔洛基亚

所以我只需将.war文件手动下载并部署到我的jboss中,问题就解决了。

于 2016-04-11T10:51:31.983 回答
0

The actual problem should be the way how it was deployed(Run time name) in the jboss.

So if you try to access the application on that it should works.

Runtime Name: Name by which the deployment should be known within a server's runtime. This would be equivalent to the file name of a deployment file, and would form the basis for such things as default Java Enterprise Edition application and module names. This would typically be the same as 'name', but in some cases users may wish to have two deployments with the same 'runtime-name' (e.g. two versions of "foo.war") both available in the deployment content repository, in which case the deployments would need to have distinct 'name' values but would have the same 'runtime-name'.

于 2016-01-13T21:00:11.977 回答