![](/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.