Servlets jboss部署问题-无法访问servlet

Servlets jboss部署问题-无法访问servlet,servlets,jboss,web-deployment,Servlets,Jboss,Web Deployment,我正在尝试编写一个简单的web应用程序并部署在jboss EAP 6上。该应用程序名为“webapp”,我能够将其构建并部署到jboss。上下文根是/webapp 然后我可以访问localhost:8080/webapp,它返回一个“helloworld”,它是由eclipse在/src/main/webapp生成的默认index.jsp打印出来的 但是,当我试图在localhost:8080/webapp/sessionsetup上实际访问servlet时,我遇到了以下错误: JBWEB000

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

然后我可以访问localhost:8080/webapp,它返回一个“helloworld”,它是由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();
    }

}
@WebServlet(“/sessionsetup”)
公共类会话设置扩展了HttpServlet{
私有静态最终记录器log=LoggerFactory.getLogger(SessionSetup.class);
public void doGet(HttpServletRequest请求、HttpServletResponse响应)引发IOException{
log.info(this.toString());
log.info(“调用doget方法”);
setContentType(“text/xml”);
PrintWriter printer=response.getWriter();
打印机。println(“”);
printer.println(“+”);
打印机。println(“”);
printer.println(“+”欢迎!您正在进行会话设置“+”);
打印机。println(“”);
打印机。println(“”);
打印机关闭();
}
}

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

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

可能有两个原因
(1) 您可以在jboss服务器中配置standalone.xml
虚拟服务器名称=“默认主机”启用欢迎root=“false”>
在启用欢迎根目录中使用false而不是true

(二)
您没有正确地映射控制器

实际的问题应该是它在jboss中的部署方式(运行时名称)

因此,如果您尝试访问上的应用程序,它应该可以工作


运行时名称:在服务器的运行时中应该知道部署的名称。这将相当于部署文件的文件名,并将构成默认Java企业版应用程序和模块名等内容的基础。这通常与“名称”相同,但在某些情况下,用户可能希望在部署内容存储库中有两个具有相同“运行时名称”的部署(例如“foo.war”的两个版本),在这种情况下,部署将需要具有不同的“名称”值,但将具有相同的“运行时名称”。

这只是我关于如何发生此问题以及解决此问题的方式的经验

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

霍蒂奥

要监视jboss它需要什么

约洛基亚


因此,我只是将.war文件下载并手动部署到我的jboss中,然后问题就解决了。

我认为您必须添加WEB-INF/jboss-WEB.xml文件,在该文件中设置了上下文根

<jboss-web>
    <context-root>contextroot</context-root>
</jboss-web>

上下文根

清理服务器要解决此问题,在许多情况下都是可行的。

谢谢。我的问题启用welcome root=“true”。我修改了它。