引言:
使用axis2是来实现webservice接口是比较常见的,就我来说,如果要学一个首次接触东西,简单了解相关基础概念后,就希望自己能够简单快速的实现一个例子,在学习一门开发语言的时候,一个helloWorld例子能够快速的让你入坑,今天也来写一个小白快速入坑的helloWorld。
实现思路
- 下载好相关jar包;
- 创建web工程,给web工程的lib引入这些jar包;
- 书写接口实现类;
- 创建和配置service.xml文件,配置web.xml;
- 编写测试类
具体实现
获取jar包
1.可以axis的官网下载,具体就不说明了。
2.文章末尾下载源码,源码里面有下载好的jar包,jar包列表如下:
创建web工程、创建相关目录
编写接口实现类
package com;public class HelloWorld {public String sayHello(String name){return "Hello, "+name+".";}public String saySorry(String name){return "Sorry,"+name+".";}public String getWorld(){return "Hello,World";}}
配置service.xml
配置详情
<service name="HelloWorld"> <!-- 指定服务名,调用地址要用到--><description> <!-- 描述 -->HelloWorld Service Example</description> <!-- 指定实现类的路径 --><parameter name="ServiceClass"> com.HelloWorld</parameter> <!-- 方法配置 --><operation name="sayHello"> <!-- 类里面的方法名 --><messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> <operation name="saySorry"> <!-- 类里面的方法名 --><messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> <operation name="getWorld"> <!-- 类里面的方法名 --><messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation>
</service>
配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><servlet><servlet-name>AxisServlet</servlet-name><servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/services/*</url-pattern><!-- 地址要用到 --></servlet-mapping>
</web-app>
部署到tomcat,启动服务器
输入地址:http://localhost:8080/helloWorldWebService/services/HelloWorld?wsdl
描述:(http://localhost:8080/ + 工程名 + / + web.xml里面的(services) + / + services.xml的指定服务名 + ?wsdl)
测试
1.可以直接通过soupui来测试
2.编写测试类(就直接在这个工程下编写,不另外开工程了)
package client;import javax.xml.namespace.QName;import org.apache.axis.client.Call;
import org.apache.axis.client.Service;public class TestMain {public static void main(String args[]) {try {String xmlInfo = "abc";String webServiceUrl = "http://localhost:8080/helloWorldWebService/services/HelloWorld?wsdl";Service service = new Service();Call call = (Call) service.createCall();String url = webServiceUrl.replace("?wsdl", "");call.setTargetEndpointAddress(url);call.setTimeout(20000);// call.setOperationName(new QName("http://com", "sayHello"));// call.setOperationName(new QName("http://com", "saySorry"));call.setOperationName(new QName("http://com", "getWorld"));String retVal = (String) call.invoke(new Object[] { xmlInfo });System.out.println("返回:" + retVal);} catch (Exception e) {e.printStackTrace();}}
}
右键执行这个测试类
源码下载
方式1:少量积分,下载代码
方式2:关注下方公众号,回复 axis2下载代码