在 Java 中使用 JAX WS 验证响应调用
Verifying response call with JAX WS in Java
我有一个关于 jax ws
和 Java 的问题。
事实上,我有一个调用 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 做到这一点?
谢谢大家。
您需要将端口转换为 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 库。
我有一个关于 jax ws
和 Java 的问题。
事实上,我有一个调用 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 做到这一点?
谢谢大家。
您需要将端口转换为 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 库。