Java Jboss EAP-未加载Servlet

Java Jboss EAP-未加载Servlet,java,servlets,jakarta-ee,jboss,web.xml,Java,Servlets,Jakarta Ee,Jboss,Web.xml,我有一个war文件,其中包含: META-INF |___MANIFEST.MF WEB-INF |___web.xml |___classes |____servlet |____StarterServlet.class my web.xml看起来像: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc

我有一个war文件,其中包含:

META-INF
|___MANIFEST.MF
WEB-INF
|___web.xml
|___classes
    |____servlet
         |____StarterServlet.class
my 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>
此外,我的运行时名称是:“war”,因此我将使用以下URL查找我的上下文根:

主要的问题是我的servlet没有被初始化,我在jboss日志文件上看不到任何跟踪,尽管我的war部署正确

我哪里做错了


谢谢

如果要将上下文根目录更改为,则必须将jboss-web.xml添加到
web-INF/jboss-web.xml
,内容如下:

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

战争
上传war时,还保留
Name
Runtime Name
中的默认值


在jboss日志中,您应该会看到一条消息,其中包含
注册的web上下文:/war

,感谢@wirnse的回答,我得到了解决方案

名称和运行时名称必须始终包含正在部署的文件的扩展名

例如:application.war必须具有以下模式的名称和运行时名称:

^[a-zA-Z]+(ear | war | jar)


myapp.warwar.war

servlet未初始化是什么意思?当您使用浏览器转到url/starter时,会出现什么错误?404错误。我可以看到我的servlet没有初始化,因为init方法没有被调用,并且我在server.Log中看不到任何“servlet已启动!”日志,只是一些建议。部署战争还有两种其他方式。使用cli(您也可以在其中使用运行时名称)并将其复制到deployments文件夹中。第二次,如果没有jboss-web.xml,则将上下文根设置为war文件名。在开发过程中,您可能希望使用IDE进行部署。我不知道netbeans,但在eclipse中,您可以运行项目,对deployments文件夹进行分解部署。
<jboss-web>
    <context-root>war</context-root>
</jboss-web>