如何使用JAX-WS生成WSDL 2.0
问题描述:
这个问题可能很愚蠢,但我还没有找到获取由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提供了一种生成它的方法。
谢谢。
答
我非常有信心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。
现在有这种变化吗?现在可能吗?如何在glassfish 4的情况下? – bastiat
没有更新JAX-WS(也没有计划用于Java 9,afaik),所以这没有改变。我也没有意识到glassfish 4中的WSDL相关更新。说实话,如果WSDL 2.0能够得到支持,我会非常惊讶。 – joergl