我是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
也可以看看: