我有一个关于Javajax ws
的问题。 实际上,我有一个调用web service
方法的客户端:
客户端实现:
URL url = new URL("file:/D:/Projects/Mywsdl.wsdl");
QName qname = new QName("http://adresse/", "ImpWSService");
Service service = Service.create(url, qname);
//web service Interface
DomaineIntWS domaineIntWS = service.getPort(DomaineIntWS.class);
//web service methode call
String echo = scciProxyIntWS.echocall("xxx");
WS 接口:
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public abstract interface DomaineIntWS
{
public abstract String echocall(@WebParam(name="testEcho") String paramString);
}
我的问题是如何在我的客户端实现中添加一种可以测试 ws 结果调用的方法,例如测试代码响应是否等于 200 OK?
我如何使用 jax ws 做到这一点?
谢谢大家。
您需要将 Port 强制转换为 BindingProvider,如下所示:
URL url = new URL("file:/D:/Projects/Mywsdl.wsdl");
QName qname = new QName("http://adresse/", "ImpWSService");
Service service = Service.create(url, qname);
//web service Interface
DomaineIntWS domaineIntWS = service.getPort(DomaineIntWS.class);
try {
String echo = domaineIntWS.echocall("xxx");
} catch (Exception e) {
//do something with a possible exception
} finally {
BindingProvider bpDomaineIntWS = (BindingProvider) domaineIntWS;
int httpResponseCode =(Integer) bpDomaineIntWS.getResponseContext().get(MessageContext.HTTP_RESPONSE_CODE);
}
旁注: 请注意,即使您获得了响应代码的值,JAX-WS 实现也将处理响应。
在大多数情况下,您不必担心处理自己的代码和东西。这就是 JAX-WS 的全部目的。否则,您将使用原始的HttpClient库。