我有一个 EAR 项目,它的名称中包含我的应用程序的版本号。在其中我有一个用于我的 session bean 的 JAR(JAR 的名称中也有一个版本号)。在那个 jar 里,我有一个网络服务实现。
到目前为止一切顺利。问题是 WSDL 的路径类似于:host:port/application_name_and_version-jar_name_and_version/WS_name?WSDL。这意味着每次出现新版本时,都必须调整 WS 客户端。
这一切都部署在 JBoss 中。
问题是,如何更改 URL 使其不包含版本号?我认为它与部署描述符有关,但到目前为止我找不到任何有用的信息。
最佳答案
我会创建一个仅包含 Web 服务实现的 .war 文件,然后在 .ear 文件的 application.xml
中为 war 提供它自己的上下文根。 .例如:
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd">
<module>
<module>
<ejb>my-ejbs.jar</ejb>
</module>
<module>
<网络>
<库目录>lib库目录>
应用>
对于格式,我很抱歉,在稍微弄乱之后,我无法让 StackOverflow 从上面创建一个连续的代码块。
无论如何,如果您像那样部署 .ear 文件,那么您应该能够访问 http://host:port/webserviceroot/...
相反。
关于java - 网络服务网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15024475/