我是 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;
}
}
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)
seemto 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/