我有一个ear文件,包含一个war文件和一些jar文件。 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服务的最佳解决方案是什么?
答案 0 :(得分:1)
我找到了解决此问题的方法如下。
我没有对类使用@Stateless
注释,而是将带有@WebService
注释的类更改为servlet。
这种解决方法消除了war文件中对无状态会话bean的需求,即使这对JavaEE6来说也是可能的
现在部署时war文件的上下文根对应于 application.xml 文件中的上下文根。
答案 1 :(得分:1)
尝试添加注释@WebContext(contextRoot="/YourContextRoot")
。
这对我有用。