我有一个 Web 应用程序当前在 Glassfish 4.0 下运行,并希望将其修改为在 Wildfly 8.2 下运行。我目前遇到的问题是:
我有一些 Web 服务(带有注释 @WebService
),目前发布在 /ws/
f.e. “PanelService”将在 /myAppContextRoot/ws/PanelService
我通过将Glassfish-WS-Servlet
(ergo JAXWS-RI)绑定(bind)到web.xml
中的/ws/*
来做到这一点。
是否有一种可比的方式让 Wildfly 更好,而不使用 Wildfly 特定注释 - 仅通过配置?我不想在我的 classpath
中包含 jboss-classes
。
我当前的“解决方案”是将 JAXWS-RI
添加到类路径并发布服务两次 - 通过 JBoss-WS
和 JAXWS-RI
:-(
欧元编辑:
Terrence Curran 的解决方案实际上有效......但是......我必须添加一些小的更改。
- 我不知道的是:必须将文件放在
src/main/webapp/META-INF
(Maven Web 项目)下 - 尝试过src/main/resources/META- INF
之前... - 上下文根必须包含我的应用程序名称......我的
jboss-webservices.xml
现在是:
.
<webservices>
<context-root>myApp/ws</context-root>
</webservices>
- 我必须将至少一个 Web 服务标记为
@Stateless
EJB。不要问我为什么 - 但如果我删除注释,该文件似乎不会被解析和应用。仅当存在一个 WS 也作为 EJB 时,我的 wildlfy 才会应用jboss-webservices.xml
。 (错误?)
最佳答案
我还会考虑在 jboss-webservices.xml 文件中定义上下文根。这样您就可以避免修改 web.xml,否则会破坏 GlassFish 中的部署。
<webservices>
<context-root>ws</context-root>
</webservices>
关于java - 更改 Wildfly 中公开的 WebService URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31851719/