远程调用服务器端的webservice接口
来源:互联网 发布:ubuntu lnmp环境搭建 编辑:程序博客网 时间:2024/05/07 22:36
搞了几天的研究,终于搞出三种调用方式
第一种:
SoapObject request = new SoapObject(“http://rkxx.ws.sq.lb.com/“, “view”);
request.addProperty(“arg0”, “E5BE68C1153F2076”);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
HttpTransportSE ht=new HttpTransportSE(“http://192.168.1.202:8080/lbkj_esb/webservice/rkxxWS?wsdl“);
try {
ht.call(null,envelope);
} catch (IOException | XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
SoapObject soapObject =( SoapObject) envelope.getResponse();
} catch (SoapFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
第二种:
package com.lb.sq.ws.security;
import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import org.apache.ws.security.WSPasswordCallback;
public class WsClinetAuthHandler implements CallbackHandler {
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { // TODO Auto-generated method stub for (int i = 0; i < callbacks.length; i++) { WSPasswordCallback pc = (WSPasswordCallback) callbacks[i]; // System.out.println("identifier: " + pc.getIdentifier()); // 这里必须设置密码,否则会抛出:java.lang.IllegalArgumentException: pwd == null // but a password is needed pc.setIdentifier("lbkj"); pc.setPassword("123456");//密码 }}
}
调用:
Map<String, Object> outProps = new HashMap<String, Object>(); outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN); outProps.put(WSHandlerConstants.USER, "lbkj2"); outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT); // 指定在调用远程ws之前触发的回调函数WsClinetAuthHandler,其实类似于一个拦截器 outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, WsClinetAuthHandler.class.getName()); ArrayList list = new ArrayList(); // 添加cxf安全验证拦截器,必须 list.add(new SAAJOutInterceptor()); list.add(new WSS4JOutInterceptor(outProps)); JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // WebServiceSample服务端接口实现类,这里并不是直接把服务端的类copy过来,具体请参考http://learning.iteye.com/blog/1333223 factory.setServiceClass(RkxxWS.class); // 设置ws访问地址 factory.setAddress("http://192.168.1.202:8080/lbkj_esb/webservice/rkxxWS?wsdl"); //注入拦截器,用于加密安全验证信息 factory.getOutInterceptors().addAll(list); RkxxWS service = (RkxxWS) factory.create(); String response = service.view("E5BE68C1153F2076"); System.out.println(response);
- 远程调用服务器端的webservice接口
- C#winForm调用WebService的远程接口
- 远程调用webservice接口的实现方法
- [C#]winForm调用WebService的远程接口
- axis2 远程调用webservice接口
- Axis远程调用WebService接口
- WebService的远程调用
- Java利用Axis远程调用WebService接口
- webservice axi2 远程服务端接口调用
- WebService使用代理类调用远程接口
- WebService服务器端接口
- PHP调用服务器端是Java 的Webservice
- webservice服务器端以及客户端调用的方法
- 如何调用远程的WebService
- webservice的远程调用方法
- 常调用的webService接口
- 调用WebService接口的方法
- 【webservice】调用webservice接口
- 设计模式六大原则(4):接口隔离原则
- zookeeper.out: Permission denied错误解决方法
- android中string.xml中%1$s、%1$d等的用法
- Xcode连接git@osc
- MSQL优化基础(找执行时绑定的值)
- 远程调用服务器端的webservice接口
- (Java)请求方式之GET、POST 浅析
- 【JavaWeb】(3)JavaBean
- oc studio
- 并行编程架构(指令流水、进程、线程、多核,Pipe and Filter)
- Popupwindow 属性设置
- html5游戏开发实战-----大家来找茬
- thinkphp 安全整理
- jquery easyui datagrid 获取Checked选择行(勾选行)数据