小白轻松使用axis2构建webservice

引言:

使用axis2是来实现webservice接口是比较常见的,就我来说,如果要学一个首次接触东西,简单了解相关基础概念后,就希望自己能够简单快速的实现一个例子,在学习一门开发语言的时候,一个helloWorld例子能够快速的让你入坑,今天也来写一个小白快速入坑的helloWorld。

实现思路

  1. 下载好相关jar包;
  2. 创建web工程,给web工程的lib引入这些jar包;
  3. 书写接口实现类;
  4. 创建和配置service.xml文件,配置web.xml;
  5. 编写测试类

具体实现

获取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下载代码

 

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程界小明哥

请博主喝瓶水,博主持续输出!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值