2012-11-17 84 views
6

這個問題可能很愚蠢,但我還沒有找到獲取由JAX-WS RI Web服務生成的WSDL 2.0的方法。如何使用JAX-WS生成WSDL 2.0

我一直在使用最新的jax-ws版本,如果我創建了一個非常簡單的WS(例如下面的例子),那麼生成的WSDL將會是1.1版本。

@WebService 
    public interface RandomNumberGenerator { 

     Integer getRandomNumber(); 

    } 

    @WebService(endpointInterface="RandomNumberGenerator") 
    public class RandomNumberGeneratorImpl { 

     public Integer getRandomNumber() { 
      return (int) (Math.random() * 1000); 
     }  
    } 

有誰知道我是如何明確告訴JAX-WS生成WSDL 2.0的?考慮到2.0是W3C自2007年以來的建議,我非常有信心JAX-WS提供了一種生成它的方法。

謝謝。

回答

9

我非常有信心JAX-WS確實提供了生成它的方法。

恐怕它沒有。從the JAX-WS 2.0 specification引用,第2頁,節目標:

WSDL 2.0:W3C的預計此JSR的壽命期間進展WSDL 2.0 [11]〜建議 。 JAX-WS 2.0將增加對WSDL 2.0的支持,同時需要繼續支持WSDL 1.1。注意:JSR專家組針對此版本的此目標做出了決定。我們將在 規範的未來版本中增加支持。

這意味着在JAX-WS 2.0中不會有WSDL 2.0支持,這就是爲什麼參考實現不提供它。阿法克,目前在這方面沒有太多進展。

如果您希望沿着JAX-WS使用WSDL 2.0,則必須使用另一個堆棧,例如Axis2

+1

現在有這種變化嗎?現在可能嗎?如何在glassfish 4的情況下? – bastiat

+2

沒有更新JAX-WS(也沒有計劃用於Java 9,afaik),所以這沒有改變。我也沒有意識到glassfish 4中的WSDL相關更新。說實話,如果WSDL 2.0能夠得到支持,我會非常驚訝。 – joergl