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

首先,带有注释的javax.jws.WebService似乎可以正常工作,但是javax.xml.ws上有很多内容。似乎javax.jws是较新的,并且没有太多可用的 Material 。

这两种方法有什么区别?

最佳答案

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

使用JSR 181规范中的注释(java.jws.xxx),可以注释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.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说:



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

也可以看看:
  • Annotations references
  • JAX-WS annotations reference
  • JSR 181
  • JSR 224
  • 10-07 19:11
    查看更多