CXF 服务调用之java客户端代码
2012-05-09 15:19
696 查看
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()); } } }
相关文章推荐
- CXF之使用工厂方法(java代码)发布服务与进行客户端调用
- CXF客户端代码生成与服务调用(二)
- CXF客户端代码生成与服务调用(二)
- AXIS1客户端调用CXF服务接口-代码展示和问题解决
- java代码调用使用cxf搭建的webService服务传递对象
- java调用xfire webService服务客户端代码
- CXF客户端代码生成与服务调用(二)
- java wsdl反向生成源码,并使用CXF实现客户端调用代码
- 作为客户端调用WebService服务java代码详解。
- CXF客户端代码生成与服务调用(二)
- java wsdl反向生成源码,并使用CXF实现客户端调用代码
- CXF调用客户端根据wsdl文件生成java代码
- cxf 方式三 是java客户端调用.net服务端 好使代码
- cxf 生成客户端代码调用服务
- CXF客户端代码生成与服务调用
- CXF调用wsdl2java生成客户端异常
- Java与WCF交互(一):Java客户端调用WCF服务 (转)
- 详解JAVA调用WCF服务的示例代码
- CXF开发webservice需要的最少jar包,CXF发布和调用客户端代码
- Spring整合CXF,发布RSETful 风格WebService--编写客户端代码,调用RESTful WebService