我是 Java 新手,并试图跳入 WebServices。我在某处找到了两个示例,但我对可用的选项感到困惑。
首先,javax.jws.WebService
使用注释似乎可以正常工作,但javax.xml.ws
. 它似乎javax.jws
较新,并且没有太多可用的材料。
这两种方法有什么区别?
我是 Java 新手,并试图跳入 WebServices。我在某处找到了两个示例,但我对可用的选项感到困惑。
首先,javax.jws.WebService
使用注释似乎可以正常工作,但javax.xml.ws
. 它似乎javax.jws
较新,并且没有太多可用的材料。
这两种方法有什么区别?
使用 JSR 181 规范 ( ) 中的注释,您可以注释 Web 服务实现类或 Web 服务接口。java.jws.xxx
例如来自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();
}
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;
}
}
我的猜测是,BEA 希望现在将一些东西放入 Weblogic 中以与 .NET 中的等效功能竞争。(请参阅,在 WebLogic 中开发 Web 服务“同样简单”)。此外,JAX-WS 2.0 (JSR-224) 中指定的注释
似乎为您提供了更多控制权。然而,JSR-224 确实明确支持/包含 JSR-181(JSR-224:7.10 由 JSR-181 定义的注释)。
有关更完整的讨论,请参阅JSR 181:Java 简化请求
也可以看看:
这两个包命名空间没有定义不同的方法。
javax.xml.ws
和javax.jws
包名称空间。