2

我有一个包含一个war文件和一些jar文件的ear文件。application.xml 包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
    "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
    "http://java.sun.com/dtd/application_1_3.dtd">
<application>
  <display-name>Web Application</display-name>
    <module>
        <web>
           <web-uri>web-endpoint-1.0.war</web-uri>
           <context-root>/web</context-root>
        </web>
    </module>
    <module>
        <ejb>backend-1.1.jar</ejb>
    </module>
</application>

此 ear 文件正在部署到 JBOSS AS 6,但是上下文根被忽略,war 文件的名称被用于上下文根。

有人能指出为什么 Jboss 忽略了 application.xml 中指定的内容吗?

谢谢!!


我进一步研究了这个问题,问题是这样的:

在 WAR 文件中,我有一个无状态会话 bean 来实现 Web 服务。当我删除无状态会话 bean 时,上下文根现在根据需要与 application.xml 中指定的匹配。使用 @WebService 注释在 war 文件中实现 Web 服务的最佳解决方案是什么?

4

2 回答 2

1

我找到了解决这个问题的方法如下。

我没有为类使用@Stateless注释,而是将带有注释的类更改@WebService为 servlet。
这种变通方法消除了war 文件中对无状态会话bean 的需求,即使这对于JavaEE6 应该是可能的。
部署时,war 文件的上下文根现在对应于application.xml文件中的上下文根。

于 2011-04-03T06:58:23.360 回答
1

尝试添加注释@WebContext(contextRoot="/YourContextRoot")

这对我有用。

于 2011-06-20T13:34:40.783 回答