![](/img/trans.png)
[英]Jboss EAP 6.4 Failed to define class org.springframework.web.servlet.DispatcherServlet in Module
[英]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.war或war.war
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.