一、首先创建webservice客户端项目webservice_client
1、目录
2、将所需jar包括到lib项目lib目录下
二、开发webservice客户端
1、开发客户端代码。如下:
com.smartdot.webservice.WebserviceClient
/**
*
* This is a part of the smartdot cpms system.
* Copyright (C) 2008-2009 Smartdot Corporation
* All rights reserved.
*
* Licensed under the Smartdot private License.
* Created on 2009-4-22
* @author YangLin
**/
package com.smartdot.webservice;
import java.util.Iterator;
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import com.smartdot.util.OMElementUtils;
/**
* webservice客户端
* @author YangLin
*
*/
public class WebserviceClient {
public static void main(String[] args) throws Exception {
/*****targetEPR指定打包的Service(.aar文件)在容器中的物理位置*******/
EndpointReference targetEPR = new EndpointReference(
"http://localhost:8080/webservice_portal/services/APIWebService");
try{
//生成一个options对象然后把前面的地址放进去。
Options options = new Options();
options.setTo(targetEPR);
ServiceClient sender = new ServiceClient();
sender.setOptions(options);
System.out.println("webservice start");
OMElement sayHello = doSetOMElement();
OMElement result = sender.sendReceive(sayHello);
System.out.println("webservice end");
//到目前为止,已经将客户端信息发送到服务器端,并且接收webservice服务器返回的值。
System.out.println(result);
/**
* 分两种方式解析OMElement对象,并且当前对象格式必须是<Z><A>b</A><B>b</B></Z>
* 如果不是这样格式,则用result.getFirstElement(),进行提取,知道是上述格式。
*/
OMElement firstElement=result.getFirstElement();
System.out.println("firstElement="+firstElement);
//第二种方式直接查找匹配子节点name属性
OMElement childElement=firstElement.getFirstChildWithName(new QName("state"));
System.out.println("第二种方式="+childElement.getText());
//第一种方式遍历子节点对象OMElement,集合Iterator存放的内容是<A>a</A><B>b</B>
Iterator it=firstElement.getChildElements();
while(it.hasNext()){
OMElement childs=(OMElement)it.next();
if(childs.getLocalName().equals("state")){
System.out.println("第一种方式="+childs.getText());
}
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
*创建调用webservice接口所需的参数OMElement对象。
* @return
*/
public static OMElement doSetOMElement(){
/************创建调用webservice接口所需的参数OMElement对象*************/
OMFactory fac=OMAbstractFactory.getOMFactory();
OMNamespace omNs=fac.createOMNamespace("", "");
//method中包含了需要调用的web service的方法名称,其中updatePeople就是其中的一个方法
OMElement method=fac.createOMElement("receiveUser",omNs);
String xmlInfo = "<people><name>yanglin</name><password>smartdot</password></people>";
OMElement content=new OMElementUtils().toOMElement(xmlInfo,"utf-8");
method.addChild(content);
return method;
}
}
2、编写字符串转换成OMElement对象公共类,
com.smartdot.util.OMElementUtils
/**
*
* This is a part of the smartdot cpms system.
* Copyright (C) 2008-2009 Smartdot Corporation
* All rights reserved.
*
* Licensed under the Smartdot private License.
* Created on 2009-4-22
* @author YangLin
**/
package com.smartdot.util;
import java.io.ByteArrayInputStream;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
public class OMElementUtils {
// 将xml字符创解析成OMElement对象。
public OMElement toOMElement(String xmlStr, String encoding) {
OMElement xmlValue;
try {
xmlValue = new StAXOMBuilder(new ByteArrayInputStream(xmlStr
.getBytes(encoding))).getDocumentElement();
return xmlValue;
} catch (Exception e) {
return null;
}
}
}
到此为止,webservice客户端已经开发完毕,以上代码注释均是自己理解的,如果有什么不对的地方请指教。谢谢!!!!
- 大小: 3 KB
分享到:
相关推荐
基于axis2实现的webservice简单实现(客户端+服务端)。
资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-...备注:资源超过了70M 分成了3部分 见axis2方式开发webservice(一)和 axis2方式开发webservice(二)、 axis2方式开发webservice(三)
NULL 博文链接:https://shawnfree.iteye.com/blog/373463
资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-...备注:资源超过了70M 分成了2部分 见axis2方式开发webservice(一)和 axis2方式开发webservice(二)、 axis2方式开发webservice(三)
本案例实现使用Axis2生成.arr包发布WebService服务,并使用Axis2生成客户端代码方式调用WebService
借鉴网上的资源,弄了一个SpringBoot开发WebService之Axis示例。
用axis2开发webService服务器端和客户端例子
用AXIS2作为客户端调用webService的demo:本人亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2 WebService大讲堂之Axis2
使用axis2生成的webservice客户端经常要用的依赖包,内含14个jar
Axis2开发webservice总结,资源一般,希望对大家有用
Axis2开发webservice总结
axis2客户端调用webService接口需要用的jar包,在一次调接口中遇到的问题,亲测可用(整理成了比较精简的jar包)
之前webservice客户端调用,使用RPC客戶端接口调用方法,但发现此种调用方式针对携参方式并不适用。最后经过多种方式测试选择了OMFactory......调用。经测试好用
axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例
资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-...备注:资源超过了70M 分成了3部分 见axis2方式开发webservice(一)和 axis2方式开发webservice(二)、 axis2方式开发webservice(三)