2013-02-22 80 views
2

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

到目前为止这么好。问题是WSDL的路径如下所示:host:port/application_name_and_version-jar_name_and_version/WS_name?WSDL。这意味着每当新版本出现时,WS客户端都必须进行调整。

这整个事情部署在JBoss。

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

+0

如果版本号只表示大的变化,那么这可能是一个功能而不是一个错误,因为它意味着你可以有服务的多个版本,所以老的客户端并不都必须当一个新的变化版本部署,因为他们可以使用旧版本。 – beny23 2013-02-22 13:01:41

回答

0

我会做一个只包含Web服务实现.war文件,然后给战争中它自己的上下文根.ear文件的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 >共享code.jar </JAVA >

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

    <module> 

<幅> <网络的URI >我的Web-service.war </web的uri > < context-root > webserviceroot < /上下文根> < /网络> < /模块>
<图书馆目录> LIB < /库目录> < /应用>

很抱歉的格式,我不能让StackOverflow从上面创建一个连续的代码块后,弄乱了一下。

无论如何,如果你部署这样一个.ear文件,那么你应该能够访问http://host:port/webserviceroot/...代替。

+0

我们已经有了完美的答案。做到了这一点,并按预期工作。谢谢。 – 2013-02-25 12:28:50