码迷,mamicode.com
首页 > Web开发 > 详细

web service调用方式

时间:2015-03-06 15:32:48      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

第一种静态调用web service的方法

 1 try {
 2     //创建webservice命名空间
 3     javax.xml.namespace.QName SERVICE_NAME =  new QName("http://tempuri.org/", "cc2erp");
 4   //Cc2Erp,Cc2ErpSoap是用cxf框架生成的实例
 5     Cc2Erp ccErp = new Cc2Erp(new URL(Constants.CON_SERVICE_URL),SERVICE_NAME);
 6     Cc2ErpSoap port = ccErp.getCc2ErpSoap();  
 7   //tok是用来发送请求的用户名和密码
 8     String tok = port.getToken("test","fesco");
 9   //用来获取需要调用的json串
10     String Json = 需要获取的数据,这个方法中将数据转为json串传递;
11   //将tok和json串传给web service
12     createResult = port.createOutbandTask(tok, taskInstJson);
13     log.fine("CreateOutbandTask : "+createResult);
14                     
15 } catch (Exception e) {
16     e.printStackTrace();
17     createResult = false;
18     log.fine(e);
19 }

第二种通过http方式动态调用web service的方法

 1  2 
 3 import org.apache.cxf.endpoint.Client;
 4 import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
 5 import org.apache.cxf.transport.http.HTTPConduit;
 6 import org.apache.cxf.transports.http.configuration.ConnectionType;
 7 import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
 8 
 9 public class Utils {
10 //动态调用wsdl客户端工厂
11     private static final JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
12 //设置最大连接时间
13     private static final long CONNECTION_TIME = 30000;
14 //设置关闭
15     private static final ConnectionType CONNECTION_TYPE = ConnectionType.CLOSE;
16     //创建客户端
17     private static Client getClient(String url){
18         return dcf.createClient(url);
19     }
20     //创建通过http连接web service
21     public static Object[] invoke(String url,String methodName,Object... params) throws Exception{
22         Client client = getClient(url);
23 //设置HTTP连接管道
24         HTTPConduit http = (HTTPConduit) client.getConduit();
25 //设置HTTP连接政策
26         HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();        
27         httpClientPolicy.setConnectionTimeout(CONNECTION_TIME);
28         httpClientPolicy.setConnection(CONNECTION_TYPE);
29         http.setClient(httpClientPolicy);
30 //返回调用的方法名和参数
31         return client.invoke(methodName, params);
32     }
33   
34     public static void main( String[] args )
35     {
36         System.out.println(invoke("http://192.168.191.1:9001/fws-outbound-service/webservice/OutboundService?wsdl",
37                      "getToken","fesco", "d31fae18a821e71fc004044d00ef4033")[0]); 38 } 39 }

 

第三种通过cxf动态调用web service的方法

 1         /**
 2          * 通过cxf框架动态调用web service
 3          */
 4 public static void main(String args) throws Exception {
 5         JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
 6         Client client = dcf.createClient("http://localhost:9001/.../**?wsdl");  //创建客户端
 7         //client.
 8         Object[] res = client.invoke("getToken", "username", "userpwd");
 9         System.out.println("------------------");
10         System.out.println( res[0] );
11         System.out.println("------------------");
12         
13         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
14         factory.getInInterceptors().add(new LoggingInInterceptor());
15         factory.getOutInterceptors().add(new LoggingOutInterceptor());
16         factory.setServiceClass(HelloWorld.class);
17         factory.setAddress("http://localhost:9001/HelloWorld");
18         HelloWorld clientHelloWorld = (HelloWorld) factory.create();
19         String reply = clientHelloWorld.sayHi("HI");
20         System.out.println("------------------");
21         System.out.println(reply);
22         System.out.println("------------------");
23 }

 

web service调用方式

标签:

原文地址:http://www.cnblogs.com/zuijiu/p/4318228.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!