【问题标题】:Verifying response call with JAX WS in Java在 Java 中使用 JAX WS 验证响应调用
【发布时间】:2019-03-15 11:20:07
【问题描述】:

我对 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 做到这一点?

谢谢大家。

【问题讨论】:

    标签: java web-services soap jax-ws webservice-client


    【解决方案1】:

    您需要将您的端口转换为 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 库。

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      相关资源
      最近更新 更多