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 ^-^
相关推荐
### axis2创建webservice操作手册知识点详述 #### 1. 引言 ##### 1.1 目的 本文档旨在为初次接触WebService技术的开发者提供一份详细的操作指南,帮助他们了解WebService的基本原理以及如何使用Axis2框架来构建...
压缩包中的"axis2创建webservice操作手册.doc"文件,通常会详细讲解上述步骤,并可能包含一些额外的注意事项、最佳实践和常见问题解答。对于初学者来说,这是一个非常有价值的资源,可以帮助理解Axis2的工作原理并...
- "51CTO下载-Axis2 WebService手册.doc":这份文档可能提供了关于Axis2 Web服务的详细步骤,包括环境配置、服务发布、客户端调用等,是初学者的良好指南。 - "服务端":可能包含服务端的源码或配置文件,供学习者...
在AXIS2中,我们可以采用多种方式来创建和发布Web Service,其中包括直接将POJO(Plain Old Java Object)类作为服务。对于不包含包名的POJO类,可以直接将其放置在axis2\WEB-INF\pojo目录下,AXIS2会自动识别并发布...
WebService-Axis2 详细讲解 WebService是一种基于XML的开放标准,用于在不同的应用程序之间进行通信。...在实践中,你将学会如何利用Axis2实现跨平台、跨语言的Web Service通信,提高系统的互操作性。
### Axis2 WebService 入门手册知识点详解 #### 一、Axis2简介 **1. AXIOM (AXIs Object Model)** - **定义**:AXIOM 是 Axis2 中用于处理 XML 的核心模型。它不同于传统的 DOM 和 SAX 解析方式,提供了更高效、...
【描述】中提到的“Axis1的示例”是一个实际的应用实例,它展示了如何利用Apache Axis1框架来创建和使用Web服务。Apache Axis1是一个开源的Java库,专门用于构建和部署Web服务,它是基于SOAP(Simple Object Access ...
在标签"webservice axis2"中,"webservice"代表了Web服务的概念,而"axis2"是实现Web服务的工具。这意味着本压缩包可能包含用于创建和使用Web服务的相关文件,包括配置文件、示例代码、文档等。 在压缩包"axis2-...
5. **文档**:包括用户手册、开发者指南和API文档,帮助开发者了解如何使用和扩展Axis2。 6. **模块**:Axis2支持模块化架构,允许添加额外的功能,如WS-Security、MTOM(Message Transmission Optimization ...
在实际开发中,Eclipse的插件支持不仅可以帮助快速创建WebService,还可以进行调试、跟踪和监控,这对于开发和维护复杂的分布式系统至关重要。理解WebService的基本概念,如SOAP(简单对象访问协议)和WSDL(Web服务...
通过使用Apache Axis库,我们创建代理和绑定对象,设置认证信息,并填充RFC函数所需的参数。这里的代码示例展示了如何设置ZYNHFIIF002函数的输入参数,并调用服务。 总结来说,将SAP RFC函数发布为Web服务涉及以下...
通过阅读《Tomcat5.0.28 下 AXIS 完全安装手册》、《详解怎样使用 Axis 开发 Web Service 的实例》等文档,了解SOAP协议及其工作原理,有助于理解WebService的本质。 在Eclipse中开发WebService,通常分为两个主要...
MAS产品的WebService API基于TCP协议进行数据传输,其具体工作流程及原理需参照《MAS移动代理服务器API 2.0开发手册》,本文档主要聚焦于WebService API的具体使用说明。 **2. 功能概述** WebService接口API提供了...
2. **WSDL(Web Service Description Language)**:每个WebService都有一个WSDL文件,这是一个XML文档,定义了服务的位置、接口、操作和消息结构。客户端首先需要获取WSDL文件,以便知道如何与服务通信。 3. **...
3. `samples`目录:提供了一些示例项目,帮助开发者了解如何使用Axis创建和调用Web服务。 4. `docs`目录:包含了用户手册和API文档,方便开发者查阅。 5. `conf`目录:包含了配置文件,如`axis-server.xml`,用于...
本手册通过实例和详细的步骤指导,使得没有WebService经验的程序员能够通过阅读文档和实践示例,学会使用Xfire、CXF和Axis这三个流行的WebService框架来编写自己的WebService接口。手册鼓励程序员在学习过程中亲自...
本手册的主要目的是提供对Web Service的基本理解,以及如何利用Axis2和CXF作为开发工具来创建和使用Web Services。这将帮助开发者选择适合项目需求的技术,并有效地实现跨平台、跨语言的互操作性。 ### 2. 范围 本...