当前位置:
文档之家› axis2 webservice入门手册(JS,Java,PHP调用实例源码)思途科技出品
axis2 webservice入门手册(JS,Java,PHP调用实例源码)思途科技出品
思途科技,网络营销专家
思途科技 让有需求的客户找到你
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> </operation> </service> 二、项目打包并发布 1.可使用你熟悉的 IDE 进行打包成 HelloWorld.aar 参考直接打包方式: 在命令符行境下,将当前目录切换到该项目包下。如博主的例子就需要切换到 sample 所在 的文件夹,注意并非切换进 sample。使用如下命令:jar cvf HelloWorld.aar . 完成在当前 目录生成 HelloWorld.aar 。请注意命令末尾的点“.”。 2.发布,使用前面提到的登录 axis2 后看到的 Upload Service 工具 将 HelloWorld.arr 部署到 Tomc 上。 3.发布测试,如博主例子访问 http://localhost:8088/axis2/services/HelloWorld?wsdl 查看第 2 步骤中部署的 HelloWrold 的描述文件。 如果有报错,则需根据错误信息检查上述步骤。如果没有错误信息,那么 HelloWorld 的 service 端就算完成了。 三、简单客户端调用 1.一个简单的 Java 调用客户端。 参考代码: package example.client; 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; public class TestClient {
思途科技 让有需求的客户找到你
环境准备
一、部署 Axis2 环境. 1.下载安装 apache 官网下载地址:/axis2/ 选择 Standard Binary Distribution 和 WAR Distribution
2.配置系统环境变量: ①添加 AXIS2_HOME 变量并指向 Standard Binary Distribution 解压目标目录。例如: $AXIS2_HOME$ =D:\axis2-1.6.1; ②将 axis2.bat 所在目录添加到系统环境变量 path 里。例如:将 D:\axis2-1.6.1\bin 添加到 path 现有值的最后面; ③将$AXIS2_HOME$\lib 添加到系统环境变量 classpath 里。例如:将 D:\axis2-1.6.1\lib 添 加到 classpath 现有值的最后面。
思途科技,网络营销专家
创建 Demo HelloWorld
一、service 端开发 1.创建一个 java 项目 2.新建类 HelloWorld.java 参考代码: package sample; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace;
②支持不同的消息交换模式。目前 Axis2 支持三种模式:In-Only、Robust-In 和 In-Out。In-Only 消息交换模式只有 SOAP 请求,而不需要应答;Robust-In 消息交换模式发送 SOAP 请求, 只有在出错的情况下才返回应答;In-Out 消息交换模式总是存在 SOAP 请求和应答。 ③提供阻塞和非阻塞客户端 API。 ④支持内置的 Web 服务寻址 (WS-Addressing) 。 ⑤灵活的数据绑定,可以选择直接使用 AXIOM,使用与原来的 Axis 相似的简单数据绑定 方法,或使用 XMLBeans、JiBX 或 JAXB 2.0 等专用数据绑定框架。 ⑥新的部署模型,支持热部署。
背景简介
思途科技 让有需求的客户找到你
思途科技项目组最近接到一个银行接口的单子,临时需要用到 axis2 webservice。自己现学 现总结的一些东西,留给新手。少走弯路。
Axis2 简介 ①采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的 XML 解析 器提供的灵活性按需构造对象模型。
private static EndpointReference targetEPR=new EndpointReference ("http://localhost:8080/axis2/services/HelloWorld");
public static OMElement getSayHelloOMElement(){ OMFactory fac=OMAbstractFactory.getOMFactory(); OMNamespace
3. 把 WAR Distribution 解压到 $tomcat_home$\webapps\axis2 下(新建 axis2 文件夹),当 然你也可以参照 axis2 文档里列出的步骤使用 ant 创建一个 axis2.war ,放到 $tomcat_home$\webapps 下,然后启动 tomcat ,那么 tomcat 会在 webapps 下自动创建 一个 axis2 文件夹。
思途科技,网络营销专家
思途科技 让有需求的客户找到你
各类客户端调用实例
一、java 调用 axis2 webservice (包括单个参数和多个参数方法的调用) 参考代码: package example.client;
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; public class s2 { private static EndpointReference targetEPR=new EndpointReference("/axis2/services/SVAMobileWebService"); public static OMElement getSayHelloOMElement(){ OMFactory fac=OMAbstractFactory.getOMFactory(); OMNamespace omNs=fac.createOMNamespace("","andy");
Options options=new Options(); options.setTo(targetEPR); ServiceClient sender=new ServiceClient(); sender.setOptions(options); OMElement sayHello=TestClient.getSayHelloOMElement(); OMElement result=sender.sendReceive(sayHello); System.out.println(result); } catch(Exception axisFault){ axisFault.printStackTrace(); } } } 编译此文件,并执行。 如果有报错,则需根据错误信息检查上述步骤。如果没有错误信息,那么 Demo HelloWorld 就完满完成。
⑦支持 HTTP,SMTP,JMS,TCP 传输协议。 ⑧支持 REST (Representational State Transfer)。
测试环境
【jdk1.6.0】 +【tomcat-6.0.18】 + 【axis2-1.6.1】+【PHP Version 5.3.5】 未测试最低支持配置。
思途客户找到你
public class HelloWorld { public OMElement sayHello(OMElement in){ String name=in.getText(); String info="你好"+name+",给你推荐 "; OMFactory fac=OMAbstractFactory.getOMFactory(); OMNamespace omNs=fac.createOMNamespace("/","hw"); OMElement resp=fac.createOMElement("sayHelloResponse",omNs); resp.setText(info); return resp; } } 3.新建文件 META-INF \ services.xml 参考代码: <?xml version="1.0" encoding="UTF-8"?> <service name="HelloWorld"> <description> This is a sample Web Service. </description> <parameter name="ServiceClass" locked="false">sample.HelloWorld</parameter> <operation name="sayHello">