开发者社区> 强心剂> 正文

web service调用方式

简介: 第一种静态调用web service的方法 try { //创建webservice命名空间 javax.
+关注继续查看

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

try {
    //创建webservice命名空间
    javax.xml.namespace.QName SERVICE_NAME =  new QName("http://tempuri.org/", "cc2erp");
  //Cc2Erp,Cc2ErpSoap是用cxf框架生成的实例
    Cc2Erp ccErp = new Cc2Erp(new URL(Constants.CON_SERVICE_URL),SERVICE_NAME);
    Cc2ErpSoap port = ccErp.getCc2ErpSoap();  
  //tok是用来发送请求的用户名和密码
    String tok = port.getToken("test","fesco");
  //用来获取需要调用的json串
    String Json = 需要获取的数据,这个方法中将数据转为json串传递;
  //将tok和json串传给web service
    createResult = port.createOutbandTask(tok, taskInstJson);
    log.fine("CreateOutbandTask : "+createResult);
                    
} catch (Exception e) {
    e.printStackTrace();
    createResult = false;
    log.fine(e);
}
第二种通过http方式动态调用web service的方法

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.ConnectionType;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;

public class Utils {
//动态调用wsdl客户端工厂
    private static final JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
//设置最大连接时间
    private static final long CONNECTION_TIME = 30000;
//设置关闭
    private static final ConnectionType CONNECTION_TYPE = ConnectionType.CLOSE;
    //创建客户端
    private static Client getClient(String url){
        return dcf.createClient(url);
    }
    //创建通过http连接web service
    public static Object[] invoke(String url,String methodName,Object... params) throws Exception{
        Client client = getClient(url);
//设置HTTP连接管道
        HTTPConduit http = (HTTPConduit) client.getConduit();
//设置HTTP连接政策
        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();        
        httpClientPolicy.setConnectionTimeout(CONNECTION_TIME);
        httpClientPolicy.setConnection(CONNECTION_TYPE);
        http.setClient(httpClientPolicy);
//返回调用的方法名和参数
        return client.invoke(methodName, params);
    }
  
    public static void main( String[] args )
    {
        System.out.println(invoke("http://192.168.191.1:9001/fws-outbound-service/webservice/OutboundService?wsdl",
                     "getToken","fesco", "d31fae18a821e71fc004044d00ef4033")[0]);
    }
}
第三种通过cxf动态调用web service的方法

/**
         * 通过cxf框架动态调用web service
         */
public static void main(String args) throws Exception {
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("http://localhost:9001/.../**?wsdl");  //创建客户端
        //client.
        Object[] res = client.invoke("getToken", "username", "userpwd");
        System.out.println("------------------");
        System.out.println( res[0] );
        System.out.println("------------------");
        
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.getInInterceptors().add(new LoggingInInterceptor());
        factory.getOutInterceptors().add(new LoggingOutInterceptor());
        factory.setServiceClass(HelloWorld.class);
        factory.setAddress("http://localhost:9001/HelloWorld");
        HelloWorld clientHelloWorld = (HelloWorld) factory.create();
        String reply = clientHelloWorld.sayHi("HI");
        System.out.println("------------------");
        System.out.println(reply);
        System.out.println("------------------");
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用web service函数
使用web service函数
15 0
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
12 0
web service渗透测试
web service渗透测试
106 0
WEB SERVICE名词解释 JSWDL开发包的介绍 JAXP、JAXM的解释 SOAP、UDDI,WSDL解释。
Web ServiceWeb Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。
24 0
Web Service 1|学习笔记
快速学习 Web Service 1。
120 0
在Pivotal Web Service上发布Spring Boot应用
在Pivotal Web Service上发布Spring Boot应用
84 0
Restful Web Service设计规范
Restful Web Service设计规范
88 0
web service axis2 参数为对象传递
web service axis2 参数为对象传递
44 0
使用nodejs消费SAP Cloud for Customer上的Web service
Jerry在公众号文章C4C和微信集成系列教程里曾经使用nodejs去消费C4C提供的标准webservice。
108 0
如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service
如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service
171 0
+关注
强心剂
陷入IT的深坑
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
PWA:移动Web的现在与未来
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多