7

这个问题可能很愚蠢,但我还没有找到一种方法来获取由 JAX-WS RI Web 服务生成的 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 是自 2007 年以来的 W3C 推荐,我非常有信心 JAX-WS 确实提供了一种生成它的方法。

谢谢。

4

1 回答 1

7

我非常有信心 JAX-WS 确实提供了一种生成它的方法。

恐怕,它没有。引用JAX-WS 2.0 规范,第 2 页,目标部分:

WSDL 2.0:W3C 预计在此 JSR 的生命周期内将 WSDL 2.0[11] 升级为推荐标准。JAX-WS 2.0 将增加对 WSDL 2.0 的支持,同时需要继续支持 WSDL 1.1。注意:JSR 专家组决定反对此版本的此目标。我们将着眼于在 JAX-WS 规范的未来修订版中添加支持。

这意味着 JAX-WS 2.0 中将没有 WSDL 2.0 支持,这就是参考实现不提供它的原因。Afaik,目前在这方面没有太大进展。

如果您希望 WSDL 2.0 沿用 JAX-WS,您将不得不使用另一个堆栈,例如Axis2

于 2012-12-04T16:10:19.237 回答