java - Javax.jws 和 javax.xml.ws 有什么区别

标签 java web-services jax-ws

我是 Java 的新手,正在尝试进入 WebServices。我在某处找到了两个示例,但对可用选项感到困惑。

首先,带注解的javax.jws.WebService 似乎工作正常,但javax.xml.ws 上有大量 Material 。似乎 javax.jws 比较新,而且没有太多可用的资料。

这两种方法有什么区别?

最佳答案

Web 服务元数据注释 (JSR 181)

使用 JSR 181 规范 ( java.jws.<i>xxx</i> ) 中的注释,您可以注释 Web 服务实现类或 Web 服务接口(interface)。

例如来自 Deploy JAX-WS Web Services On Tomcat

package com.mkyong.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)
public interface HelloWorld{

    @WebMethod String getHelloWorldAsString();

}

JAX-WS 2.0 注释 (JSR 224)

JSR 224 规范定义了 JAX-WS 2.0 的注解 ( javax.xml.ws.<i>xxx</i> )。

例如来自 Using SOAP Faults and Exceptions in Java JAX-WS

@WebFault(name="CheckVerifyFault",
    targetNamespace="http://www.example.com")
public class CheckVerifyFault extends Exception {

    /**
     * Java type that goes as soapenv:Fault detail element.
     */
    private CheckFaultBean faultInfo;

    public CheckVerifyFault(String message, CheckFaultBean faultInfo) {
        super(message);
        this.faultInfo = faultInfo;
    }

    public CheckVerifyFault(String message, CheckFaultBean faultInfo, 
                               Throwable cause) {
        super(message, cause);
        this.faultInfo = faultInfo;
    }

    public CheckFaultBean getFaultInfo() {
        return faultInfo;
    }
}

Peer Reynders说:

My guess would be that BEA wanted something NOW to put into Weblogic to compete with the equivalent feature in .NET. (see, developing Web services in WebLogic is just "as easy"). Also the annotations specified in JAX-WS 2.0 (JSR-224) seem to provide you with more control. However JSR-224 does explicitly support/include JSR-181 (JSR-224: 7.10 Annotations Defined by JSR-181).

有关更完整的讨论,请参阅 JSR 181: a Java Simplification Request

另见:

关于java - Javax.jws 和 javax.xml.ws 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16212246/

相关文章:

java - 安卓/Java : how to define a specific class usable in an xml layout file?

java - JAX-WS 端点到 Domino

java - 如何在 wsdl 中为输入和输出参数提供相同的元素?

java - 如何为 JAX-WS RI 生成的 WSDL 和 XSD 添加 SVN 属性?

Java - 如何查找由特定接口(interface)或 super 接口(interface)名称扩展的接口(interface)

java - 在 Eclipse 中运行时,对我的代码的编辑不会显示

java - RxJava 分组排序数据

asp.net - 如何确认网站正在完全信任地运行?

java - 如何在 Android 上调用 SOAP Web 服务

java - 具有 Rest API 和 RESTEasy 的嵌入式 Web 服务器