搭建Axis的WebService
来源:互联网 发布:网络管理协议snmp组成 编辑:程序博客网 时间:2024/05/16 17:00
准备:
到Apache官网下载Axis的包
http://axis.apache.org/axis/java/releases.html
下载后解压取WEB-INF-->lib下的jar放到项目工程
另外还需要添加activation.jar mail.jar
1. 配置web.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><listener><listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class></listener><servlet><servlet-name>AxisServlet</servlet-name><display-name>Apache- Axis Servlet</display-name><servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class></servlet><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/servlet/AxisServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>*.jws</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping></web-app>
<?xml version="1.0" encoding="UTF-8"?><deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> <service name="PersonAction" provider="java:RPC"> <parameter name="allowedMethods" value="*"/> <parameter name="scope" value="Request"/> <parameter name="className" value="com.kerryzb.axis.PersonAction"/> </service> <transport name="http"> <requestFlow> <handler type="URLMapper"/> <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> </requestFlow> </transport> <transport name="local"> <responseFlow> <handler type="LocalResponder"/> </responseFlow> </transport> </deployment>
3. 编写service类及方法
<pre name="code" class="java">package com.kerryzb.axis;import java.rmi.Remote;public class PersonAction implements Remote {public String getName(String name){System.out.println(name);return "person name : "+name;}public String getPerson(String name, float high){String respxml = "<xml version=\"1.0\" encoding=\"UTF-8\"><name>"+name+"</name><high>"+high+"</high></xml>";System.out.println(respxml);return respxml;}}
#这里写了两个方法,分别是传一个参数和两个参数的写法
4. 在Tomcat中运行这个web工程,然后在客户端浏览器上访问
http://localhost:8080/TestWebService/services/PersonAction?method=getName&name=testname
http://localhost:8080/TestWebService/services/PersonAction?method=getPerson&name=testname&high=180.5
显示如上,WebService的服务端就写成功了。
5. 客户端调用WebService
<pre name="code" class="java">package com.hnisi.axis.client;import java.io.StringReader;import java.rmi.RemoteException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.InputSource;public class CallService {public static void main(String[] args) throws ServiceException,RemoteException {Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress("http://localhost:8080/TestWebService/services/PersonAction");call.setOperationName("getPerson");call.addParameter("name", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);call.addParameter("high", org.apache.axis.Constants.XSD_FLOAT,javax.xml.rpc.ParameterMode.IN);call.setReturnType(org.apache.axis.Constants.XSD_STRING);String response = (String) call.invoke(new Object[] { "testname",180.5f });System.out.println(response);parse(response);call = null;service = null;}public static void parse(String protocolXML) {try {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();org.w3c.dom.Document doc = builder.parse(new InputSource(new StringReader(protocolXML)));Element root = doc.getDocumentElement();NodeList nodeList = root.getChildNodes();if (nodeList != null) {for (int i = 0; i < nodeList.getLength(); i++) {Node node = nodeList.item(i);System.out.println(node.getNodeName() + " = "+ node.getFirstChild().getNodeValue());}}} catch (Exception e) {e.printStackTrace();}}}
完整的工程请下载
http://download.csdn.net/detail/kerryzb/9550274
0 0
- 搭建Axis的WebService
- webservice 搭建(axis)
- 搭建Vc 调用应用AXIS的WEBSERVICE服务
- "WTP+TOMCAT+AXIS"搭建WebService开发平台
- 开发基于Axis的WebService
- axis做java的webservice
- axis webservice 的实现原理
- axis发布webservice的服务
- 安全的发布Axis Webservice
- axis调用webservice的学习
- WebService之axis的应用
- webservice axis
- WebService Axis
- axis+webservice
- WebService AXIS
- axis webservice
- webservice-axis
- axis webservice
- LEK(logstash, elasticsearch, kibana) 搭建日志分析系统
- Android数据库存储和访问
- 软件工程系列- 软件开发模型
- Swift学习之七:Optional value(可选值)
- 输出数组全排列
- 搭建Axis的WebService
- 软件工程系列- 软件开发的可行性研究
- Swift学习之八:断言(Assertions)
- ViewPagerIndicator 之TabPageIndicator的简单使用(顺带导库方法)
- Java Collection
- Swift学习之九:基本运行符(Basic Operators)
- Android常用开源工具(2)-Dagger2进阶
- 网红“有毒”,被“感染”的短视频、直播平台真能赢得下半场?
- Swift学习之十:字符串与字符(Strings and Characters)