Axis2 创建 webservice 操作手册

1.3 什么是WebService

 

 

简单理解:Web Service 就是一个网络组件(一个可以通过网络访问的程序)。

它有一个或多个端口(Port),这些端口用于接收客户端的请求,并返回响应 

请求和响应的 都是一种基于XML的消息。不过这种消息遵循特定的格式(SOAP )。

 

 

1.4 WebService WSDL SOAP关系

 

Web Service = SOAP + HTTP + WSDL。其中,SOAP Simple Object Access Protocol)协议是web service的主体,它通过HTTP或者SMTP等应用层协议进行通讯,自身使用XML文件来描述程序的函数方法和参数信息,从而完成不同主机的异构系统间的计算服务处理。这里的WSDL(Web Services Description Language)web 服务描述语言也是一个XML文档,它通过HTTP向公众发布,公告客户端程序关于某个具体的 Web service服务的URL信息、方法的命名,参数,返回值等。

 

SOAP格式数据:

 

<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
		<soapenv:Body>
				<helloServer xmlns="http://gongqiang">
				<arg0 xmlns="">张三</arg0>
			</helloServer>
		</soapenv:Body>
</soapenv:Envelope>

 

 

1.5 Web Service服务器工作流程

 

监听网络端口(监听服务端口)

接收客户端请求(接收SOAP请求)

解析客户端请求(解析SOAP消息,将SOAP消息转换为数据对象)

调用业务逻辑 (调用Web Service实现类的特定操作,参数是由SOAP消息转换而来的数据对象)

生成响应 (将返回值转换为SOAP消息)

返回响应 (返回SOAP响应)  

 

 

1.6 Web Service客户端工作流程

 

 构造SOAP请求消息(将本地数据对象转换为SOAP消息)

发送SOAP消息到Web Service服务器的指定端口

接收SOAP响应消息 

将SOAP响应消息转换为本地数据对象   

 

 

2.系统所需环境

 

 

JDK1.4以上版本

设置JAVA_HOME环境变量

ANT必须是1.6.5以上版本

设置AXIS2_HOME环境变量,指向安装跟目录

在path路径下添加:%AXIS2_HOME%\bin\

 

 

3.构建WebService服务器

 

 

3.1 使用AXIS2构建WebService服务器

POJO

Eclipse插件

3.1.1  POJO方式 

1、下载所需的包:axis2 的2进制的包和axis2.war

 

下载地址:http://ws.apache.org/axis2/download/1_5_2/download.cgi

 

2、将下载的axis2.war,放置到tomcat的webapps目录下,启动tomcat,此时webapps目录会自动解压出axis2目录,如下图所示

 

 


此时,在浏览器中输入:http://localhost:8080/axis2/,如果一切正常将会看到如下界面


 

 

3、编写服务器端代码

 

启动Eclipse,选择File---->New--->Project,打开新建项目向导,如下图所示:

 


 

4、选择Java Project,点击Next,打开新建项目窗口,为新建项目命名,这里命名为:4thWebService,如下图所示:

 


 

5、点击Finish完成项目创建。

 

6、编写服务器端代码

  选择File--->New---->Class,为新建的不含任何报名的类,命名为:myWebService,如下图所示:

 


 

7、点击Finish,编写代码,代码如下

 

 

public class MyWebService {
	public String helloWebService(String name) {   
        return name + " ,this is WebService ^-^";   
    }  
}

 

 

8、将编译后的MyWebService .class放置到tomcat的webapps\axis2\WEB-INF\pojo(没有pojo文件夹的需要手动创建该文件夹)目录下

 

9、在地址栏中输入:

 

http://localhost:8080/axis2/services/MyWebService?wsdl,如果创建成功,将会看到如下界面:

 


 

使用POJO方式搭建Web Service优缺点

优点:简单

缺点:服务器端java类不能含有包名

 

 

 

3.1.2   使用框架构建webservice

 

1、下载所需的包(方法参考3.1.1 POJO方式中的1 2)

 

2、下载Axis2_Codegen_Wizard_1.3.0,Axis2_Service_Archiver_1.3.0并解压插件到eclipse的plugins目录下,启动eclipse(下载地址略)

 

3、编写服务器端代码

  选择File--->New---->Class,为新建的类,包名命名为:gongqiang,类名命名为:myWebService,如下图所示:

 


 

 4、点击Finish,编写代码,代码如下

 

 

package gongqiang;

public class MyWebService {
	public String helloWebService(String name) {   
        return name + " ,this is WebService ^-^";   
    }  
}

 

5、新建项目,FILE---->NEW---->OTHER,选择Axis2 Service Archiver ,如下图

 


6、点击Next进入下一个设置页面

 


7、在该页面中设置你的JAVA类编译后存放的CLASS目录,记住这里的目录不需要包括JAVA包,点击next进入下一个设置页面

 


8、选择第一个SkipWSDL,点击Next进入下一页,该页我们不设置,再点击Next,进入如下页面

 


9、点击Next,出现如下页面

 


 

10、面中填入ServiceName,ClassName(你将要作为webservice暴露的JAVA类的全路径),点击load

选择Search declared methods only只显示你定义的方法,然后在列表中选择你需要暴露的方法,点击next,出现如下图

 


11、点击finish,出现如下图表示生成服务器端成功。

 


12、将生成的loginService放置到tomcat的ebapps\axis2\WEB-INF\services目录下,如下图

 


 

 

13、在地址栏中输入:

http://localhost:8080/axis2/services/myService2?wsdl,如果创建成功,将会看到如下界面:

 


 

 

3.1.3   使用独立安装模式

1、修改配置文件:axis2二进制文件下面的axis2-1.5.2\conf\axis2.xml  

 

 

<transportReceivername="http"                     
class="org.apache.axis2.transport.http.SimpleHTTPServer"> 
<parameter name="port">8060</parameter>
</transportReceiver>

 

 

端口号修改为:8060(防止与tomcat冲突)

2、运行axis2server.bat(位于axis2二进制文件下面的axis2-1.5.2\bin目录下)

3、浏览器中输入:http://localhost:8060/axis2/services/Version?wsdl,可以看到如下界面

 


 

 

4.构建WebService客户端

4.1.1  使用插件创建WebService客户端

1、下载geronimo-stax-api_1.0_spec-1.0.1.jar,backport-util-concurrent-3.1.jar,将下载后的文件放置到eclipse安装目录的Axis2_Codegen_Wizard_1.3.0文件下(该文件夹是3.1.2  第2步中解压之后的文件夹)

2、修改Axis2_Codegen_Wizard_1.3.0\plugin.xml文件,在该文件中添加如下代码:

 

 

<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar"> 
       <export name="*"/> 
</library> 
<library name="lib/backport-util-concurrent-3.1.jar"> 
	     <export name="*"/>
</library> 

 

 

3、将文件夹Axis2_Codegen_Wizard_1.3.0重命名为Axis2_Codegen_Wizard_1.4.0

4、启动Eclipse ,点击File---->New--->Other,弹出如下界面:

 


5、选择Axis2 Code Genetator,点击Next,进入下一个设置页面,如下图:

 


6、选择Generate Java source from a WSDL file,点击Next,进入下一个设置界面,如下图

 


7、在上图文本框中输入wsdl地址,点击Next,进入下一设置页面,如下图:

 


8、点击Next,进入下一个设置页面,如下图:

 


9、点击上图的Browse,选择生成客户端代码存放位置(这里放置到桌面),点及Finish,将会看到如下操作,说明客户端创建成功

 


 

10、将生成的两个类(这里为MyService2CallbackHandler.java、MyService2Stub.java)源文件拷贝到eclipse工作空间中,如下图:


 

 

 

11、引入相关jar 包

   A)点击Window---->Preferences,进入Preferences窗口,如下图

 


 

B)依此选择Java-->Build Path--->User Liberaries,点击New ,新建User Liberaries(这里命名为axis2)选中新建好的axis2库,点击import,引入jar包(axis2二进制包中lib目录下所有jar包)

 

 

C)右键项目名称,选择build path---->Add Liberary弹出Add Liberary窗口,如下图

 


 

D)点击Next,选择刚刚创建的axis2 库。

 

12、编写客户端实现类,代码如下

 

package gongqiang;

public class MyClient {

	public static void main(String[] args) {
		try {

			MyService2Stub stub = new MyService2Stub();
			// 初始化SimpleMethod方法。
			MyService2Stub.HelloWebService request = new MyService2Stub.HelloWebService();
			// 调用simpleMethod的setName方法。
			request.setName("gq");
			System.out.println(stub.helloWebService(request).get_return());

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

 

13、执行MyClient.class,控制台输出如下信息,说明调用服务成功

 

gq ,this is WebService ^-^

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值