簡體   English   中英

Jboss EAP-未加載Servlet

[英]Jboss EAP - Servlet not loaded

我有一個包含以下內容的戰爭文件:

META-INF
|___MANIFEST.MF
WEB-INF
|___web.xml
|___classes
    |____servlet
         |____StarterServlet.class

我的web.xml看起來像:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">

    <display-name>WAR</display-name>

    <servlet>
        <display-name>Starter Servlet</display-name>
        <servlet-name>StarterServlet</servlet-name>
        <servlet-class>servlet.StarterServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>StarterServlet</servlet-name>
        <url-pattern>/starter</url-pattern>
    </servlet-mapping>

</web-app>

我的servlet代碼是:

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class StarterServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    public void init(ServletConfig servletConfiguration) throws ServletException {

        super.init(servletConfiguration);

        System.out.println("SERVLET STARTED!");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("DOGET!");

        PrintWriter printWriter = response.getWriter();

        printWriter.println("Hello world");
    }
}

另外,我的運行時名稱為:“ war”,因此我將使用以下URL查找上下文根:

http:// localhost:8080 / war / starter

在此處輸入圖片說明

主要問題是我的servlet沒有初始化,盡管我的戰爭得到了正確的部署,但我看不到jboss日志文件的任何蹤跡。

我在哪里做錯了?

謝謝

如果要將上下文根更改為http:// localhost:8080 / war / ,則必須將jboss-web.xml添加到WEB-INF/jboss-web.xml ,其內容為:

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

上載戰爭時,還要在“ Name和“ Runtime Name保留默認值。

在jboss日志中,您應該隨后看到帶有已Registered web context: /war的消息Registered web context: /war

感謝@wirnse的回答,我找到了解決方案。

名稱和運行時名稱必須始終包含正在部署的文件的擴展名。

例如:application.war必須具有遵循以下模式的名稱和運行時名稱:

^ [A-ZA-Z] +(耳|戰爭|罐)。

myapp.warwar.war

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM