CXF 服务调用之java客户端代码

package com.dawning.gridview.core.authmanagement.webapp.gvusermanagement.export.test;

import java.util.List;

//import javax.xml.bind.JAXBElement;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import com.dawning.gridview.app.jobscheduler.commonresource.dataandmethod.export.data.ResultObjectWS;
import com.dawning.gridview.app.jobscheduler.intf.jobservice.export.JobServiceIPortType;
import com.dawning.gridview.core.authmanagement.webapp.gvusermanagement.export.po.ArrayOfGvUserInfo;
import com.dawning.gridview.core.authmanagement.webapp.gvusermanagement.export.po.GvUserInfo;
/**
 *获取服务的实例工厂  获取的服务是单列的
 java 客户端调用云端服务的方式,首先要通过wsdl2java 命令将相关文件准备好,然后本地还需要相关cxf的jar包,
 * @author lvzh
 *
 */
public class ServiceFactory {
	/**
	 * 客户端调用的实例对象  通过wsdl生成的接口对象
	 */
	private static JobServiceIPortType service = null;

	private static String url;

	/**
	 * 提供给外部使用的获取服务获取实例的方法
	 * @return
	 */
	public synchronized static JobServiceIPortType getServiceInstance(){

		if(service == null){
			JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
	        //注册WebService接口
	        factory.setServiceClass(JobServiceIPortType.class);
	        //设置WebService地址
	        //factory.setAddress("http://10.0.31.210:10005/jm_jobservice");
	        factory.setAddress(url);
			/*如果server端设置了验证,还需要
				 factory.setUserName("");
				 factory.setPasswd("");
			*/
			Map<String, Object> properties = new HashMap<String, Object>();
			properties.put("mtom-enabled", Boolean.TRUE);
			factory.setProperties(properties);	
	        service = (JobServiceIPortType)factory.create();
	        Client client =ClientProxy.getClient(service);
	        HTTPConduit  http = (HTTPConduit) client.getConduit();
	        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
	        /*设置服务器和客户端的超时时间*/
	        httpClientPolicy.setConnectionTimeout(1000*60*7);
	        httpClientPolicy.setReceiveTimeout(1000*60*7);
	        httpClientPolicy.setAllowChunking(false);
	        http.setClient(httpClientPolicy);
		}
		return service;
	}
	public static void setUrl(String url) {
		ServiceFactory.url = url;
	}
	public static void main(String[] args){
		/*服务地址*/
		ServiceFactory.setUrl("http://10.0.31.210:10005/jm_jobservice");
		JobServiceIPortType jspt  = ServiceFactory.getServiceInstance();
		//一个登录的测试方法 
		String uKey  = jspt.userLogin("admin", "admin");
		System.out.println(uKey);

		//查询用户列表
        ResultObjectWS rows = jspt.queryUserList("ProjectManager",uKey);
        JAXBElement<ArrayOfGvUserInfo> gvinfo = rows.getGvUserInfoList();
        List<GvUserInfo> gvList = gvinfo.getValue().getGvUserInfo();
        System.out.println("userId\tusername\tdeptName\tuserType");
        for(GvUserInfo info:gvList){
            System.out.println(info.getGvUserId().getValue()+"\t"+info.getGvUserName().getValue()+
            		"\t"+info.getGvUserDeptName().getValue()+"\t"+info.getGvUserGroupNames().getValue());
        }
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值