2

我有一个 EAR 项目,它的名称中包含我的应用程序的版本号。在其中,我有一个用于会话 bean 的 JAR(JAR 的名称中也有一个版本号)。在那个 jar 里面,我有一个 Web 服务实现。

到现在为止还挺好。问题是 WSDL 的路径类似于:host:port/application_name_and_version-jar_name_and_version/WS_name?WSDL。这意味着每次出现新版本时,都必须调整 WS 客户端。

整个事情都部署在 JBoss 中。

问题是,如何更改 URL,使其不包含版本号?我认为它与部署描述符有关,但到目前为止我无法找到任何有用的信息。

4

1 回答 1

0

我会制作一个仅包含 Web 服务实现的 .war 文件,然后在 .ear 文件的 .ear 文件中为 war 提供自己的上下文根application.xml。例如:

<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>

  <java>shared-code.jar</java>

  <module>
    <ejb>my-ejbs.jar</ejb>
  </module>

  <module>

  <web> <web-uri>my-web-service.war</web-uri> <context-root>webserviceroot</context-root> </web> </module>  
<library-directory>lib</library -目录> </应用程序>

对格式感到抱歉,在弄乱了一点之后,我无法让 StackOverflow 从上面创建一个连续的代码块。

无论如何,如果您部署这样的 .ear 文件,那么您应该可以访问http://host:port/webserviceroot/...

于 2013-02-22T12:55:54.593 回答