webservice的axis2客户端调用方式和xfire调用方式

作者:湖北诺贝特科技有限公司  来源:www.nbt158.com未知  发布时间:2017-09-04 18:15:03
webservice的axis2客户端调用方式和xfire调用方式

1、axis2调用方式:

package com.shine.fund;


import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

import com.shine.eframe.webapp.bean.BaseBean;

public class TestWS extends BaseBean {

/**
* @param args
* @throws AxisFault
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
String serviceUrl = "http://127.0.0.1:8080/eospexService/ws/eospexService_UtilFundNavCtrl?wsdl";
// 调用发送
Object[] result;

//使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(serviceUrl);
options.setTo(targetEPR);
String sessionId = "22f92a5ff3bf8f45dab6a9190c7bc5a9";
//String sessionId = currentServiceSessionId();
// 指定要调用的method方法及WSDL文件的命名空间
//WSDL文件的命名空间元素的targetNamespace属性值
QName opAddEntry = new QName("http://ctrl.fund.shine.com/", "getWSResultList");
String date = "20150501";
Object[] params = new Object[] {sessionId ,date };
Class[] returnClass = new Class[] { String.class};
// 调用method方法并输出该方法的返回值
result = serviceClient.invokeBlocking(opAddEntry, params, returnClass);
System.out.println("111");
System.out.println(result[0]);
}
catch(Exception e){

}
}

}

2、xfire调用方式:

package com.shine.eframe.test;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import com.shine.eframe.app.right.model.BaseAppInfoDTO;
import com.shine.eframe.esm.dto.LoginResultDTO;
import com.shine.eframe.rightmanage.ctrl.AppInfoCtrl;
import com.shine.eframe.rightmanage.dto.AppInfoDTO;
import com.shine.eframe.rightmanage.dto.ParamInfoDTO;
import com.shine.pub.query.ShineQueryInfo;
import com.shine.pub.query.ShineRowSet;
import com.shine.pub.query.ShineRowSetHelper;
import com.shine.pub.test.BaseSpringTest;

public class XFireTest extends BaseSpringTest {
public String getPackageMsg() {
return "20001120141521 03:15:45ZLSnull20140121null4020311001007200059507029宏源证券股份有限公司建行北京西四支行营业部(支付系统行号:105100003023)对方资金开户行联行行号CNY本方账户名称BFZH0001本方开户行12345678CNY150032.8820120406卖券080025A100000001卖券080025A100000001";
}
public void testCallWs() throws Exception {
try {
// 获取properties中的配置url地址
String serviceUrl = "http://10.168.2.114:8080/EFrameCoreService/ws/EFrameCore_AppInfoCtrl";// 新增
Service serviceModel = new ObjectServiceFactory().create(
AppInfoCtrl.class, null, serviceUrl + "?wsdl", null);
AppInfoCtrl service = (AppInfoCtrl) new XFireProxyFactory()
.create(serviceModel, serviceUrl);
// AppInfoCtrl
AppInfoDTO appInfo = (AppInfoDTO)service.getAppInfo("44faafb34ca91cf4f4a933de6c20942c", 1);
/*XFireProxy proxy = (XFireProxy) Proxy.getInvocationHandler(service);
Client client = proxy.getClient();
// 发送授权信息
client.addOutHandler(new ClientAuthenticationHandler("admin",
"admin")); */
// 输出调用web services方法的返回信息
System.out.println(appInfo);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}

public void testWs() throws Exception {
try {
// 获取properties中的配置url地址
String serviceUrl = "http://10.168.3.125:8080/EsmService/ws/Esm_ServiceManagerCtrl?wsdl";
Client c = new Client(new URL(serviceUrl));
//OperationInfo op = new OperationInfo;
//c.invoke(op, params)
// AppInfoCtrl
Object[] results = c.invoke("login", new Object[] {null, "TestHost", "11974d21ede5455869e039e14814ff22", null });
/*XFireProxy proxy = (XFireProxy) Proxy.getInvocationHandler(service);
Client client = proxy.getClient();
// 发送授权信息
client.addOutHandler(new ClientAuthenticationHandler("admin",
"admin")); */
// 输出调用web services方法的返回信息

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}


public void testWebservice1() {
/*String userCode = "TestHost";
String password = "11974d21ede5455869e039e14814ff22";
Client client = new Client(new URL("http://127.0.0.1:8123/EsmService/ws/Esm_ServiceManagerCtrl?wsdl"));
Object[] loginParam = { null, userCode, password, null };
Object[] results = client.invoke("login", loginParam);
System.out.println(results);*/

}



public void testCallAppInfo() throws Exception {
// 登录
String sessionId = "e1440c8a9030138d2f44cf60174d9f76";
// 调用
String serviceUrl = "http://10.168.2.56:8123/EFrameCoreService/ws/EFrameCore_AppInfoCtrl?wsdl";
// 调用发送
Object[] result;
result = invokeWsService(sessionId, serviceUrl, "getAppInfo", "http://app.shine.com/eframecore/services", new Object[] {
sessionId, 1 }, new Class[] { String.class });
System.out.print(result[0]);
}




/**
* 调用服务方法,根据自己的需求进行修改
*
* @param domain 服务域
* @param serviceName 服务名
* @return 方法调用返回值
* @throws Exception
*
*

* 修改日期 修改人 修改原因 * 2013-3-17 wuhanchu 新建 *
*/
private Object[] invokeWsService(String sessionId, String serviceUrl, String mothodName, String namespace,
Object[] param, Class[] returnValueClass) throws Exception {
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();

// 指定调用WebService的URL
// EndpointReference targetEPR = new EndpointReference("http://" + jbossIp + ":" + jbossPort + "/" + domain
// + "/ws/" + serviceName + "?wsdl");
EndpointReference targetEPR = new EndpointReference(serviceUrl);
options.setTo(targetEPR);

// 指定要调用的method方法及WSDL文件的命名空间
QName opAddEntry = new QName("http://ctrl.eipmp.shine.com/", mothodName);

// 调用method方法并输出该方法的返回值
return serviceClient.invokeBlocking(opAddEntry, param, returnValueClass);
}


public void testInvokeWs() throws AxisFault, InterruptedException {
while(true) {

String serviceUrl = "http://10.168.3.126:8080/EsmService/ws/Esm_ServiceManagerCtrl?wsdl";
// 调用发送
Object[] result;

//使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(serviceUrl);
options.setTo(targetEPR);

// 指定要调用的method方法及WSDL文件的命名空间
QName opAddEntry = new QName("http://app.shine.com/", "login");
Object[] params = new Object[] {null, "TestHost", "11974d21ede5455869e039e14814ff22", null };
Class[] returnClass = new Class[] { LoginResultDTO.class};
// 调用method方法并输出该方法的返回值
result = serviceClient.invokeBlocking(opAddEntry, params, returnClass);
System.out.println(result[0]);
Thread.sleep(200);
}

}


public void testInvokeWs1() throws AxisFault {
String serviceUrl = "http://127.0.0.1:8080/EFrameCoreService/ws/EFrameCore_ParamInfoCtrl?wsdl";
// 调用发送
Object[] result;

//使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(serviceUrl);
options.setTo(targetEPR);
String sessionId = "c9fe9905cec15d81278c74639da42636";
// 指定要调用的method方法及WSDL文件的命名空间
QName opAddEntry = new QName("http://app.shine.com/", "getParamValueByParamCode");
Object[] params = new Object[] {sessionId, "CAS_FRAME_DEF" };
Class[] returnClass = new Class[] { String.class};
// 调用method方法并输出该方法的返回值
result = serviceClient.invokeBlocking(opAddEntry, params, returnClass);
System.out.println(result[0]);

}



public void testA() {


String serviceUrl = "http://10.168.2.114:8080/EFrameCoreService/ws/EFrameCore_AppInfoCtrl";
Service serviceModel = new ObjectServiceFactory().create(AppInfoCtrl.class, null, "http://10.168.2.114:8080/EFrameCoreService/ws/EFrameCore_AppInfoCtrl?wsdl", null);
XFireProxyFactory serviceFactory = new XFireProxyFactory();
try{
String sessionId = "262b73aacb60eb973e9598552bcd5f5b";
AppInfoCtrl service = (AppInfoCtrl)serviceFactory.create(serviceModel,serviceUrl);
BaseAppInfoDTO appInfo = service.getAppInfo(sessionId, 1);
System.out.println(appInfo.getAppName());
} catch(Exception e){
e.printStackTrace();
}

}

public void testAB() {
List etParamInfoList = null;
String serviceUrl = "http://127.0.0.1:8080/EFrameCoreService/ws/EFrameCore_ParamInfoCtrl?wsdl";
// 调用发送
Object[] result;
try{
//使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();

EndpointReference targetEPR = new EndpointReference(serviceUrl);
options.setTo(targetEPR);
String sessionId = "262b73aacb60eb973e9598552bcd5f5b";

// 指定要调用的method方法及WSDL文件的命名空间
QName opAddEntry = new QName("http://pub.shine.com/", "queryParamInfo");
ShineQueryInfo queryInfo = new ShineQueryInfo(10);
Object[] params = new Object[] {sessionId, null, "", "01", "1", queryInfo};
Class[] returnClass = new Class[] { String.class, Integer.class, String.class, String.class, String.class, ShineQueryInfo.class};
// 调用method方法并输出该方法的返回值
result = serviceClient.invokeBlocking(opAddEntry, params, returnClass);
System.out.println(result[0]);
// etParamInfoList = (List)result[0];
} catch (AxisFault e) {
e.printStackTrace();
}

}

}



,采集软件

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网站优化 http://www.feimao666.com


上一篇:php的几个配置文件函数
下一篇:最后一页