2013-02-22 112 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