我是新来的Java,并试图跳进Web服务。我发现了两个例子在某处,我混淆可用的选项。
首先,javax.jws.WebService
与注释看起来做工精细,但有材料的负荷上javax.xml.ws
。这似乎是javax.jws
更新,没有提供关于这多少材料。
什么是这两种方法之间的区别?
从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();
}
的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: a Java Simplification Request
也可以看看:
这两个包的命名空间没有定义不同的方法。
javax.xml.ws
和javax.jws
包命名空间。