gpt4 book ai didi

java - Javax.jws 和 javax.xml.ws 有什么区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:38 27 4
gpt4 key购买 nike

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

Peer Reynders说:

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) seem to 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com