Web Service 使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web Service 使用
1、Web Service 介绍 (1)
1.1 Web Service的出现 (1)
1.2 Web Service的概念 (2)
1.3 Web Service适用场合 (2)
1.4 Web Service不适用场合 (2)
1.5 Web Service的体系结构 (2)
1.6 WebServices注意事项 (3)
2、AXIS介绍 (3)
2.1 AXIS概念 (3)
2.2 Ant概念 (3)
3、Web Service实现 (3)
3.1 环境准备 (3)
3.2 JAR包准备 (3)
3.3 Web Service服务部分文件说明 (4)
4 劳动局项目Web Service部署说明 (6)
4.1 为什么要用Web Service服务 (6)
4.2 运行Web Service服务,必须具备如下条件 (6)
4.3 Web Service服务运行机制 (7)
4.4 DLL控件的注册 (7)
4.5 OA系统里的web.xml修改 (7)
5 市政府项目Web Service部署说明 (7)
5.1 为什么要用Web Service服务 (7)
5.2 运行Web Service服务,必须具备如下条件 (7)
5.3 Web Service服务运行机制 (7)
5.4 DLL控件的注册 (7)
5.5 OA系统里的web.xml修改 (7)
1、Web Service 介绍
1.1 Web Service的出现
Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。
Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP (简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。
注:SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。
在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。
它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。
1.2 Web Service的概念
We 服务(web service WS)通常指通过web提供的各种服务。
一个典型的WS过程是:一个业务应用通过使用HTTP的SOAP协议向某个指定URL上的一个服务发出请求,这个服务接收并且处理该请求后返回一个响应。
1.3 Web Service适用场合
●跨越防火墙的通信
●应用程序集成
●B2B的集成
1.4 Web Service不适用场合
●单机应用程序
●局域网上的同构应用程序
1.5 Web Service的体系结构
图1-5-1 WS 体系结构
–服务提供者(Service Provider)
从企业的角度看,这是服务的所有者。
从体系结构的角度看,这是托管访问服务的平台。
–服务请求者(Service Requestor)
从企业的角度看,这是要求满足特定功能的企业。
从体系结构的角度看,这是寻找并调用服务,或启动与服务的交互的应用程序。
–服务代理(Service Broker)
用来存储服务描述信息的信息仓库。
1.6 WebServices注意事项
⏹为了服务的通用性,请尽量使用简单的参数来传递;
⏹请单独实现Web服务,不要直接将业务的实现直接公布给外界,否则如
果你的业务有变动,对于你个人和服务使用者,都将是个灾难;
⏹务必对你提供的服务做安全验证,否则,你的服务将成为系统的安全漏
洞;
2、AXIS介绍
2.1 AXIS概念
AXIS是由Apache实现的一套SOAP服务器,为Web服务应用程序的创建和发布提供了平台。
2.2 Ant概念
Ant是一个构建工具
3、Web Service实现
3.1 环境准备
●JDK1.4
●Tomcat5.0
●Window平台
3.2 JAR包准备
3.3 Web Service服务部分文件说明3.3.1 web.xml文件修改
编辑web.xml 文件,加入如下一段:
<!-- begin axis -->
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
com.toone.iems.thirdpart.axis.SpringAxisServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</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>
<!--end axis -->
3.3.2 build.xml文件修改
从build.xml文件中复制axis相关部分,并配置相关属性(如server.url等)
<!-- axis begin -->
<taskdef resource="axis-tasks.properties" classpathref="compile.classpath" />
<target name="genClient" description="gen client class">
<axis-wsdl2java output="${basedir}/client"
testcase="true"
verbose="true"
url="http://localhost:2104/services/NotifyServices?wsdl" >
<mapping
namespace="${server.url}/services/NotifyServices"
package="com.toone.iems.webservice.notify.client" />
</axis-wsdl2java>
</target>
<target name="genWSDL" description="gen WSDL from client class">
<axis-java2wsdl classname="com.toone.iems.webservice.notify.NotifyServices"
location="${server.url}/services/NotifyServices"
namespace="${server.url}/services/NotifyServices"
output="NotifyServices.wsdl"
style="RPC"
classpathRef="runtime.classpath">
</axis-java2wsdl>
</target>
<target name="deploy-services">
<java classname="org.apache.axis.client.AdminClient">
<arg line=" -l${base.url}/services/AdminService"/>
<arg value="${basedir}/deploy.wsdd"/>
<classpath>
<path refid="compile.classpath"/>
</classpath>
</java>
</target>
<target name="undeploy-services">
<java classname="org.apache.axis.client.AdminClient">
<arg line=" -l${base.url}/services/AdminService"/>
<arg value="${basedir}/undeploy.wsdd"/>
<classpath>
<path refid="compile.classpath"/>
</classpath>
</java>
</target>
<!-- axis end -->
注:
deploy-services 用来发布web服务
undeploy-services卸载服务
genWSDL 根据服务类生成对应的wsdl文件
genClient 根据wsdl文件(或url)生成客户端代码
3.3.3 deploy.wsdd文件修改
<deployment xmlns="/axis/wsdd/"
xmlns:java="/axis/wsdd/providers/java"
xmlns:ns1="http://localhost:2104/services/NotifyServices" >
<service name="NotifyServices" provider="java:RPC">
<parameter name="className"
value="com.toone.iems.webservice.notify.NotifyServices"/>
<parameter name="allowedMethods" value="distributeNotifyToUser"/>
<operation name="distributeNotifyToUser" returnType="java:boolean" >
<parameter name="userID" type="java:string"/>
<parameter name="content" type="java:string"/>
</operation>
</service>
</deployment>
运行ant deploy-services 就可以发布服务了(注意:发布服务的时候,必须将
apusic/tomcat启动)
3.3.4 undeploy-services.wsdd文件修改
<undeployment xmlns=/axis/wsdd/
xmlns:java="/axis/wsdd/providers/java" >
<service name="NotifyServices" >
</service>
</undeployment>
删除服务是运行ant undeploy-services (把想要删除的服务名称放进去就可以了)
4 劳动局项目Web Service部署说明
4.1 为什么要用Web Service服务
由于OA是部署在liunx环境下,但CEB、DOC文档合并,调用到.DLL控件,只能在window平台下运行。
因此,采用Web Service服务方式实现。
4.2 运行Web Service服务,必须具备如下条件
●Jdk1.4
●Window平台
●Tomcat5.0
●Word2003软件
●CEB查看软件
●CEB盖章软件
4.3 Web Service服务运行机制
劳动局Web Service服务运行机制:采用RPC调用方式,同时和OA系统是共用同一个数据库。
4.4 DLL控件的注册
请直接拷贝jacob.dll到system32目录
4.5 OA系统里的web.xml修改
请找到“WebserviceHost”名称,然后修改其对应的值(webservice服务部署的地址、端口)。
5 市政府项目Web Service部署说明
5.1 为什么要用Web Service服务
由于OA是部署在liunx环境下,但CEB、DOC文档合并,调用到.DLL控件,只能在window平台下运行。
因此,采用Web Service服务方式实现。
5.2 运行Web Service服务,必须具备如下条件
●Jdk1.4
●Window平台
●Tomcat5.0
●Word2003软件
●CEB查看软件
●CEB盖章软件
5.3 Web Service服务运行机制
劳动局Web Service服务运行机制:采用RPC调用方式,同时和OA系统是共用同一个数据库。
5.4 DLL控件的注册
⏹直接拷贝jacob.dll到system32目录
⏹注册条形码、CEB的DLL控件
5.5 OA系统里的web.xml修改
请找到“WebserviceHost”名称,然后修改其对应的值(webservice服务部署的地址、端口)。