加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

(转载)webservice 客户端,axis调用cxf 发布的webservices服务

发布时间:2020-12-16 23:16:10 所属栏目:安全 来源:网络整理
导读:使用CXF发布了Webservice服务端 现在在学CXF,发布了Webservice服务端 ,如果使用cxf的客户端访问,很简单,如下: public static void main(String[] args) throws Exception {//这个是用cxf 客户端访问cxf部署的webservice服务//千万记住,访问cxf的webser


使用CXF发布了Webservice服务端

现在在学CXF,发布了Webservice服务端 ,如果使用cxf的客户端访问,很简单,如下:

public static void main(String[] args) throws Exception {
		//这个是用cxf 客户端访问cxf部署的webservice服务
		//千万记住,访问cxf的webservice必须加上namespace,否则通不过
		//现在又另外一个问题,传递过去的参数服务端接收不到
		JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
		org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/facelook/services/facelookWebService?wsdl");
		//url为调用webService的wsdl地址
		QName name=new QName("http://server.webservice.facelook.com/","getAlbumList");
		//namespace是命名空间,methodName是方法名
		String xmlStr = "<?xml version="1.0" encoding="UTF-8"?>"
				 + " 	 <facelook>"
				 + "	 	<condition>"
				 + " 	 		<name>家</name>"
				 + "			<description></description>"
				 + "			<pageno></pageno>"
				 + "			<pagesize></pagesize>"
				 + "  		</condition>"
				 + "	 </facelook>";
		//paramvalue为参数值
		Object[] objects=client.invoke(name,xmlStr); 
		//调用web Service//输出调用结果
		System.out.println(objects[0].toString());
}

但是在使用axis客户端调用的时候一直是服务端接收不到参数,各种方法都试过了,原来要指定传递的参数以及返回结果的类型
public static void main(String[] args) throws ServiceException,RemoteException,MalformedURLException {
	String xmlStr = "<?xml version="1.0" encoding="UTF-8"?>"
			 + " 	 <facelook>"
			 + "	 	<condition>"
			 + " 	 		<name>家</name>"
			 + "			<description></description>"
			 + "			<pageno></pageno>"
			 + "			<pagesize></pagesize>"
			 + "  		</condition>"
			 + "	 </facelook>";
	
	  Service service = new Service();
	  Call call = (Call) service.createCall();
	  call.setTargetEndpointAddress("http://localhost:8080/facelook/services/facelookWebService?wsdl");
	  QName qName = new QName("http://server.webservice.facelook.com/","getAlbumList");
	 <span style="background-color: rgb(51,204,255);"> call.setOperationName(qName);
	  call.setUseSOAPAction(true);
	  //这下面两行一定要加上,否则接收在服务器端收不到。
	  call.addParameter("xmlStr",XMLType.XSD_STRING,ParameterMode.IN);
	  call.setReturnType(XMLType.XSD_STRING);</span>
	  String result = (String) call.invoke(new Object[] { xmlStr });
	  System.out.println(result);
	
	//将返回的字符串转换成list集合
	//JSONArray array = JSONArray.fromObject(result);
	//List<Album> list = JSONArray.toList(array,Album.class);
	
}
转载:http://blog.csdn.net/chenghui0317/article/details/9318317

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读