Simply consuming a web service in Java

前端 未结 4 492
情歌与酒
情歌与酒 2020-11-28 05:50

I have a very simple SOAP web service that I need to consume from a Java client. What is the easiest way to accomplish this without using any third party libraries? A requ

4条回答
  •  暖寄归人
    2020-11-28 06:18

    I can recommend you CXF library. Using it you will have several options for calling web services:

    1. Use dynamic proxy for calling (don't need to make Java stubs using wsdl2java).

      DynamicClientFactory dcf = DynamicClientFactory.newInstance();
      Client client = dcf.createClient("http://admin:password@localhost:8080"+
                                       "/services/MyService?wsdl");
      Object[] a = client.invoke("test", "");
      System.out.println(a);
      
    2. Using Java stub generated from WSDL, using wsdl2java.

    3. If your server was created using CXF you can reuse your interface code directly (instead of using wsdl2java on the WSDL which was created from your interface!)

    For both #2 and #3, the following code exemplifies the CXF usage:

    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    factory.setAddress("http://admin:password@localhost:8080/services/MyService");
    factory.setServiceClass(ITest.class);
    ITest client = (ITest) factory.create();
    client.test();
    

提交回复
热议问题