【问题标题】:My web project does not work on JBoss 7 when deployed by maven由 maven 部署时,我的 Web 项目在 JBoss 7 上不起作用
【发布时间】:2013-04-25 11:03:50
【问题描述】:

我已经尝试了几个小时来让我的第一个 servlet 在我的 JBoss 7.1.1 实例上运行。
我正在使用 Maven 将项目编译和部署为 EAR 模块,其中 WAR 文件是其中的一部分。我正在使用 maven-war-plugin 制作战争模块。 web项目的结构如下:

--src 
   -- main
        -- java
           -- org
              -- myproject
                 -- MyServlet.java
        -- resources
        -- webapp
             -- web.xml  

web.xml:

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

    <servlet>
        <servlet-name>myproject</servlet-name>
        <servlet-class>org.myproject.MyServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>myproject</servlet-name>
        <url-pattern>/Myproject</url-pattern>
    </servlet-mapping>

</web-app>

当我转到 http://127.0.0.1:8080/Myproject 时,我只是从 JBoss 那里得到一个 Status 404。 我真的不知道我做错了什么。

在 JBoss 上部署时,日志中没有出现错误,一切正常:

14:37:15,053 INFO  [org.jboss.web] (MSC service thread 1-8) JBAS018210: Registering web context: /Myproject
14:37:15,061 INFO  [org.jboss.as.server] (management-handler-thread - 26) JBAS018562: Redeployed "myproject.ear"
14:37:15,061 INFO  [org.jboss.as.server] (management-handler-thread - 26) JBAS018565: Replaced deployment "myproject.ear" with deployment "myproject.ear"

可能出了什么问题?

【问题讨论】:

    标签: java maven jboss7.x war web.xml


    【解决方案1】:

    在服务器上部署应用程序时,它有自己的根路径。因此,您可能需要访问类似http://127.0.0.1:8080/myproject/Myproject

    【讨论】:

    • 有趣!我已经按照mkyong.com/servlet/a-simple-servlet-example-write-deploy-run 上的教程进行了所有设置,但我使用的是 JBoss 而不是教程中的 Tomcat。这可能是一个愚蠢的问题,但我如何找出根路径?我在 web.xml 中设置的似乎是路径的一部分的是&lt;url-pattern&gt;
    • 我认为这是基于部署的文件的名称。但要确保您可以在src/main/webapp/WEB-INF 文件夹中的jboss-web.xml 文件中指定它:&lt;jboss-web&gt;&lt;context-root&gt;myproject&lt;/context-root&gt;&lt;/jboss-web&gt;。同样在 mkyong 上,它使用http://localhost:8080/servlet/Demo1 形式的 URL,而不仅仅是http://localhost:8080/Demo1。希望这能有所帮助!
    猜你喜欢
    • 2017-05-11
    • 2011-10-08
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    相关资源
    最近更新 更多