使用axiom创建webservice
来源:互联网 发布:linux什么是管道 编辑:程序博客网 时间:2024/04/28 21:21
现拥有MyService.java myService.wsdl两个文件,要求使用AXIOM创建和部署MyService服务,输入一个字符串,生成(hello+该字符串)
1、编写WSDL文件,确定SOAP请求和SOAP响应结构
已经拥有
2、根据SOAP请求消息结构和响应消息结构,编写服务实现代码
编写MyService.java
package exercise.service;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
public class MyService {
public OMElement echo(OMElement element) {
element.build();
element.detach();
OMElement symbolElement = element.getFirstElement();
String name = symbolElement.getText();
String returnText = "hello"+name;
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs =
fac.createOMNamespace("http://service.exercise", "ns");
OMElement method = fac.createOMElement("echoResponse", omNs);
OMElement value = fac.createOMElement("return", omNs);
value.setText(returnText);
method.addChild(value);
return method;
}
}
3、部署服务
1)到集成开发环境的工作目录下去,找到bin文件夹下生成的文件夹,拷贝到下面步骤生成的zhu文件夹
2)将axis2.war拷到Tomcat Webapps目录下,运行tomcat,生成axis2文件夹
3)进入I:\apache-tomcat-6.0.28\webapps\axis2\WEB-INF\services目录下,新建文件夹zhu,进入zhu文件夹,新建lib文件夹和META-INF文件夹
4)在lib文件夹下添加axiom-api-1.2.7.jar
5)在MET-INF文件夹下放置myService.wsdl文件,新建services.xml
6)打开services.xml文件,进行如下更改
<service name="MyService" scope="application">
<operation name="echo">
<messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
<parameter name="useOriginalwsdl">true</parameter>
<parameter name="ServiceClass"> exercise.service.MyService </parameter>
</service>
注解:
服务名,和wsdl中的servcie name值相同
operation 名字要和MyService.java文件中方法名保持一致
ServiceClass名字要和MyService.java保持一致
7)启动tomcat,浏览器中输入地址http://localhost:8080/axis2,查看已部署的服务
4、验证服务是否成功部署
编写测试程序,代码如下:
package exercise.service;
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.axiom.soap.SOAP12Constants;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class test1 {
public static void main(String[] args) {
try {
ServiceClient client = new ServiceClient();
Options opts = new Options();
opts.setTo(new EndpointReference(
"http://localhost:8080/axis2/services/MyService"));
opts.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
client.setOptions(opts);
opts.setAction("urn:echo");
client.sendRobust(createechoLoad());
opts.setAction("urn:echoResponse");
OMElement res = client.sendReceive(createechoResponseLoad());
System.out.println(res);
} catch (AxisFault e) {
e.printStackTrace();
}
}
public static OMElement createechoLoad() {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://service.exercise", "nsl");
OMElement echo = fac.createOMElement("echo", omNs);
OMElement name = fac.createOMElement("name",omNs);
echo.addChild(name);
return echo;
}
public static OMElement createechoResponseLoad() {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://service.exercise", "nsl");
OMElement echoResponse = fac.createOMElement("echoResponse", omNs);
OMElement return1 = fac.createOMElement("return", omNs);
return1.setText(" world");
echoResponse.addChild(return1);
return echoResponse;
}
}
执行结果:
- Deploying module: metadataExchange - file:/E:/XML/2015-4-30/webservice基础/webservice基础/lib/axis2-1.4.1/lib/mex-1.4.1.jar
<ns:echoResponse xmlns:ns="http://service.exercise">
<ns:return>hello world</ns:return>
</ns:echoResponse>
使用AXIOM创建和部署MyService服务成功
- 使用axiom创建webservice
- AXIOM
- axiom
- 使用cxf创建webservice
- 使用axis2创建webservice
- axis2 webservice下实现AXIOM service的完整步骤
- C++使用gsoap创建webService
- eclipse使用xfire创建webservice
- C++使用gsoap创建webService
- 使用wsdd创建WebService服务器端
- C#创建和使用webservice
- 使用wsdd创建WebService服务器端
- C++使用gsoap创建webService
- 如何使用C#创建WebService
- 使用axis创建WebService服务
- 使用CXF创建REST WEBSERVICE
- 使用CXF创建REST WEBSERVICE
- 如何使用C#创建WebService
- 变量的持续性、链接性和作用域
- 王刚口述滴滴的创业经历
- Android学习之常用控件(1)
- fragment与Button或Textview监听换页
- java操作redis数据库
- 使用axiom创建webservice
- 自定义字节缓冲区用于文件复制
- 团队管理在IT项目实施中的作用
- java使用HTTPclient访问网络
- AndroidManifest.xml——activity(五)
- java 使用jsch.jar包通过sftp访问Linux服务器
- 让JavaScript在Visual Studio 2015中编辑得更容易
- Spring面试问答Top 25
- TP-Link路由器端口映射8081端口的Nexus服务外网无法访问的解决办法