码上敲享录 > java入门知识分享 > java调用webservice服务的几种方法

java调用webservice服务的几种方法

上一章章节目录下一章 2019-02-22已有1684人阅读 评论(0)

java调用webservice服务的几种方法


解决方法:

webservice服务端代码参考地址:http://www.yayihouse.com/yayishuwu/chapter/1786


第一种:

URL wsUrl = new URL("http://localhost:8080/httpSMS2/ws/hi");

       HttpURLConnection conn = (HttpURLConnection) wsUrl.openConnection();

       conn.setDoInput(true);

       conn.setDoOutput(true);

       conn.setRequestMethod("POST");

       conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");

       OutputStream os = conn.getOutputStream();

       //请求体

       String soap = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:q0=\"http://test.com/\" xmlns:xsd=


\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" +

                     "<soapenv:Body> <q0:sayHello><arg0>5555</arg0>  </q0:sayHello> </soapenv:Body> </soapenv:Envelope>";

       os.write(soap.getBytes());

       InputStream is = conn.getInputStream();

       byte[] b = new byte[1024];

       int len = 0;

       String s = "";

       while((len = is.read(b)) != -1){

           String ss = new String(b,0,len,"UTF-8");

           s += ss;

       }

       System.out.println(s);

       is.close();

       os.close();

       conn.disconnect();


第二种:

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();

       

       org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/httpSMS2/ws/hi?wsdl");

     Object[] objects;

       try {

         objects = client.invoke("sayHello",new Object[]{"admin"});

         //输出调用结果

         System.out.println(objects[0].toString());

       } catch (Exception e) {

         e.printStackTrace();

       }



第三种:

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();

       org.apache.cxf.endpoint.Client client = dcf

               .createClient("http://localhost:8080/httpSMS2/ws/hi?wsdl");

       // url为调用webService的wsdl地址

       QName name = new QName("http://test.com/", "sayHello");

       // namespace是命名空间,methodName是方法名

       String xmlStr = "aaaaaaaa";

       // paramvalue为参数值

       Object[] objects;

       try {

           objects = client.invoke(name, xmlStr);

           System.out.println(objects[0].toString());

       } catch (Exception e) {

           e.printStackTrace();

       }


第四种:

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();

       factory.setServiceClass(WebServiceServerI.class);

       factory.setAddress("http://localhost:8080/httpSMS2/ws/hi?wsdl");

       WebServiceServerI client = (WebServiceServerI)factory.create();

       System.out.println(client.sayHello("2"));


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交