包太多。这里就不列了。
步骤:编写接口。
package com.baidu.webservice;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService(targetNamespace="http://webservice.baidu.com",name="WebServiceImpl", serviceName="serviceName")
public interface IWebService {
@WebMethod(operationName = "test",action="http://webservice.baidu.com/test")
public String test(
@WebParam(targetNamespace="http://webservice.baidu.com", name="name")String name,
@WebParam(targetNamespace="http://webservice.baidu.com", name="list")List<String> list
);
}
编写实现类:
package com.baidu.webservice.impl;
import java.util.List;
import com.baidu.webservice.IWebService;
public class WebServiceImpl implements IWebService{
@Override
public String test(String name, List<String> list) {
System.out.println(name);
System.out.println("---------");
System.out.println(list.get(0));
return "success";
}
}
package com.baidu.test;
import java.util.ArrayList;
import java.util.List;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
import org.apache.cxf.transport.Conduit;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.apache.http.client.params.HttpClientParams;
import com.baidu.webservice.IWebService;
import com.baidu.webservice.impl.WebServiceImpl;
public class TestWebService {
public static void main(String[] args) {
publicService();
//调用
IWebService instance = getInstance();
List<String> list = new ArrayList<String>();
list.add("456");
String result = instance.test("123", list);
System.out.println(result);
}
public static void publicService(){
JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
factoryBean.getInInterceptors().add(new LoggingInInterceptor());
factoryBean.getInInterceptors().add(new LoggingOutInterceptor());
factoryBean.setServiceClass(WebServiceImpl.class);
factoryBean.setAddress("http://192.168.0.128:18080/model/service/serviceName");
factoryBean.create();
}
public static IWebService getInstance(){
IWebService service = null;
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
factoryBean.setAddress("http://192.168.0.128:18080/model/service/serviceName");
factoryBean.setServiceClass(IWebService.class);
Object obj = factoryBean.create();
Client client = ClientProxy.getClient(obj);
HTTPConduit http = (HTTPConduit)client.getConduit();
HTTPClientPolicy policy = new HTTPClientPolicy();
policy.setConnectionTimeout(60000);
policy.setReceiveTimeout(60000);
http.setClient(policy);
service = (IWebService)obj;
return service;
}
}