【webservice】如何远程调用Websevice服务

【浏览器作为客户端】

利用ajax,但是要提前组合soap信封字符串,可以使用工具soapui,自动生成soap信封,在问号处填补参数。

这里写图片描述

【java写客户端】

法一:【远程调用,不必生成本地客户端代码】利用axis,代码如下:

//获取请求参数
            String jobID = soapReq. getString( "jobID");
            if (jobID ==null|| jobID. length() ==0 ) return succeed;

            Object[]paramsObj = new Object[1];
           paramsObj [0 ] = jobID ;

            try {
                 Service service = new Service() ;
                 Call call;
                call = (Call)service. createCall() ;
                call .setTargetEndpointAddress (new URL(TARGET_URL ));
                call .setOperation (operation );
                call .addParameter (new QName( namespace,
                            "jobID"), XMLType .XSD_STRING, ParameterMode.IN );

                call .setReturnType (XMLType.XSD_STRING) ;

                 String returnResult = (String) call.invoke( NAMESPACE,operation ,paramsObj ); //执行
                 if( !returnResult .equals ("0" )) return succeed;//执行错误
                succeed = true; resultObj. put( "result", succeed );

期间发生过一次错误: 无效的编码名称 “utf-8; action=”“”,原因是客户端生成的http请求头不能被服务端识别,将依赖远程axis后,问题解决(之前是axis2);

法二:【使用wsimport,利用wsdl生成客户端代码,在本地调用】。
命令
出现了错误
这里写图片描述

原因在wsdl中,
这里写图片描述
,使用的address为localhost,所以连接不上。(service是远程地址的绑定)解决办法是如下代码:
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值