Springboot調用wsdl的webservice接口兩種不常用方式


import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;    

public String sendXml(String xml) {
 // 創建動態客戶端
    JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
    Client client = dcf.createClient(System.getProperty("wsdl"));
        // 需要密碼的情況需要加上用戶名和密碼
        // client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME, PASS_WORD));
        Object[] objects = new Object[0];
        try {
            // invoke("方法名",參數1,參數2,參數3....);
            objects = client.invoke("getUserName", xml);
            logger.debug("返回數據:" + objects[0]);
            return objects[0].toString();
        } catch (java.lang.Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public String sendXml2(String xml) throws Throwable {
        String url = System.getProperty("wsdl");
        Service serv = new Service();
        Call call = (Call) serv.createCall();
        call.setTargetEndpointAddress(url);
        call.setOperationName(new QName("http://webservice.rpc.other.web.demo.g4studio.org/","createsite"));
        call.addParameter(new QName("http://webservice.rpc.other.web.demo.g4studio.org/", "xmlContent"), 
                XMLType.XSD_STRING, Class.forName("java.lang.String"), ParameterMode.IN );
        call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
        System.out.println("推送的xml---"+xml);
        String str=(String) call.invoke(new Object[] {xml});
        System.out.println(str+"----------------推送成功");
        return str;
    }
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM