什么是差异javax.jws中和javax.xml.ws

问题描述 投票:8回答:2

我是新来的Java,并试图跳进Web服务。我发现了两个例子在某处,我混淆可用的选项。

首先,javax.jws.WebService与注释看起来做工精细,但有材料的负荷上javax.xml.ws。这似乎是javax.jws更新,没有提供关于这多少材料。

什么是这两种方法之间的区别?

java web-services jax-ws
2个回答
11
投票

Web Services Metadata Annotations (JSR 181)

从JSR 181规范(java.jws.xxx)使用注释,您可以标注Web服务实现类或Web服务接口。

例如从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 Annotations (JSR 224)

的JSR 224规范定义了用于JAX-WS 2.0(javax.xml.ws.xxx)注释。

例如从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说:

我的猜测是,BEA想要的东西现在投入的Weblogic在.NET中等效特点相抗衡。 (见,在WebLogic中开发Web服务只是“容易”)。此外,在JAX-WS指定的注释2.0(JSR-224) 似乎 为您提供更多的控制。然而JSR-224不明确支持/包括JSR-181(JSR-224:7.10注释由JSR-181中定义)。

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

也可以看看:


5
投票

这两个包的命名空间没有定义不同的方法。

  • 如果您正在创建基于Web的服务,有两种选择:SOAP服务(AKA Web服务)或REST服务(AKA RESTful服务)。
  • 如果在Java中实现SOAP服务,要走的路是使用JAX-WS框架。该框架提供的工具,如的wsimport和WSGEN,当然的API。
  • 的JAX-WS API包括注释,类和接口用于实现SOAP服务本身的代码和服务消费者(客户端)的代码。
  • 共的JAX-WS API的这些元素同时使用javax.xml.wsjavax.jws包命名空间。
  • 只要按照教程或实例创建使用JAX-WS的服务。不要担心这包做API元素从何而来。
  • 但要记住,以避免供应商特定的API元素。您可以使用WS- *标准(例如WS-Security的)超越WSDL和SOAP时,很可能会碰上这些供应商的特定元素。
© www.soinside.com 2019 - 2024. All rights reserved.