JAVA 調用Webservice服務

依賴如下

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>2.6.1</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>2.6.1</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxrs</artifactId>
    <version>2.6.1</version>
</dependency>
<!-- 此包爲jdk目錄lib下的tools.jar -->
<dependency>
    <groupId>com.sun</groupId>
    <artifactId>tools</artifactId>
    <version>1.8</version>
</dependency>

調用方法如下:

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.namespace.QName;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONObject;

@Service
@WebService(name = "TestService")
public class TestService {
    public static final String WSDL = "wsdl地址";
    public static final String NAME_SPACE = "namespace";

    @WebMethod
    @WebResult
    public Object methodName(@WebParam(name = "userCode") String userCode) {
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient(WSDL);
        Object[] objects = new Object[0];
        String methodName = "與此方法名相同從wsdl地址中的xml中獲取";
        try {
            QName opName = new QName(NAME_SPACE, methodName);
            objects = client.invoke(opName, userCode);
            System.out.println("返回數據:" + JSONObject.toJSONString(objects[0]));
            return objects[0];
        } catch (java.lang.Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章