`

Webservice开发和使用指南2

阅读更多
5.2    测试webservice接口工具
1.      vb脚本来测试。这种方式操作比较方便。
微软公司的Soap Toolkit 开发工具包,这个工具包可以从微软公司的主页:http://download.microsoft.com/download/xml/soap/2.0/W98NT42KMe/EN-US/SoapToolkit20.exe
2.生成的*testCase.java文件来进行测试。
详细测试代码,参见测试webservice用例代码
6       采用eclipse插件开发
通过这个ObjectWeb Lomboz工具来实现代码开发。这个是最简单的方式。效率非常高,但是对webservice一些基础知识的理解帮助不大。步骤如下:
1.建一个新的工程。
2.wsdl文件放到工程中。
3.点击右键,新建一个webservice客户端或服务器端代码。可以选择axis、proxy两种方式来实现。
7       采用Axis和Spring进行开发
7.1    基本流程
7.1.1            简单的Web Service实现
包含四个基本步骤:
·创建Web Service的商业逻辑(通常是一些Java类)
·将这些Java类部署到一个SOAP服务器上
·生成客户访问代码
·部署客户应用
注意:WSDL等文件的生成通常是利用厂商提供的工具来完成
7.1.2            在Axis下进行开发
This is a sample of the axis!
To run the bidbuy sample, you must do the following:
1. Set up your CLASSPATH.
2. Start a server.
3. Deploy the service.
4. Run the sample.
 
1. Set up your CLASSPATH. (May don’t set it, )
    The CLASSPATH must contain: an XML parser (ie., Xerces), JUnit
    (www.junit.org), all the jars in the lib directory, and the directory
    containing the samples subdirectory.
2. Start a server.
    To run the sample, you will first need to run a server. To run a very
    simple server you could run, in a separate window:
        java org.apache.axis.transport.http.SimpleAxisServer -p 8080
 
        java -Djava.ext.dirs=lib org.apache.axis.transport.http.SimpleAxisServer -p 8080
       
3. Deploy the service.
    To deploy the service, run:
        java org.apache.axis.client.AdminClient deploy.wsdd
       
        java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient samples\bidbuy\deploy.wsdd
 
4. Run the sample.
    Finally, to run the client, run:
        java samples.bidbuy.TestClient
       
        java -Djava.ext.dirs=lib samples.bidbuy.TestClient
7.2    Axis与Spring的结合
Axis与spring结合,需要提供一些额外工作,即将实现web服务接口的Bean与web服务部署中服务类如何关联。如下:
<service name="GameService" type="" provider="Handler" style="rpc">
<parameter name="handlerClass" value="/blog/com.workingmouse.webservice.axis.SpringBeanRPCProvider"/>
<parameter name="springBean" value="gameInfoService"/>
<parameter name="springBeanClass" value="/blog/com.gamebase.kernel.service.GameService"/>
<parameter name="scope" value="Request"/>
<parameter name="allowedMethods" value="*"/>
.......
</service>
参数handlerClass的值是处理Bean与wsdd文件中服务类的关联。
参数springBean的值表示实现接口GameService注册的Bean的名字。
参数springBeanClass的值表示接口GameService的类。
7.3    Webservice代码设计准备
7.3.1            版本选择
根据你的工程的特点,来选择合适的axis版本。
如果在工程中采用是axis1.2版本的jar文件,如果生成服务器端和客户端时,必须采用合适的axis1.2版本的wsdl2java工具去生成代码。否则,有的不能调用。
7.3.2            软件下载
7.3.3            War文件部署
1.在下载的axis1.4中的本身在webapps下面本身就有一个axis目录(axis目录本身就是一个war文件解压后的一些文件,然后resin就可以配置web-id指向这个文件,当然也是可以把这war文件,放到resin的webapps目录下,然后启动servlet容器resin就可以了)。也可以在网站上单独的下载war文件。
2.然后可以http://localhost:8080/axis/来访问,
3.点击Validation - Validate the local installation's configuration来检查配置是否运行正常。
7.3.4            好的包名命名规则
可以在根目录下建两个源文件目录:
l         Component/src/webserviceserver
l         Component/src/webserviceclient
源文件可以命名为:
com.qnuse.zj114boss.webserviceclient.huawei.SMSCardService
7.4    Webservie客户端开发
7.4.1            开发步骤
7.4.1.1             获得wsdl文件或wsdl url地址。
7.4.1.1.1       如果本身作为客户端,必须得到对方的对外提供的wsdl地址或wsdl文件。
7.4.1.1.2       如果本身作为服务器端,发布webservcie。获得wsdl文件的方式
7.4.1.1.2.1 方式一:
第一步:在spring工程中的server_config.wsdd 中,配置要发布的函数。 增加如下:
实例一:业务受理平台接口配置。
    <service name="business" provider="java:RPC">
       <operation name="doService" returnQName="businessReturn" returnType="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
           <parameter name="wsname" type="xsd:string"/>
           <parameter name="param" type="xsd:string"/>
       </operation>
       <parameter name="wsdlTargetNamespace" value="http://www.channelsoft.com/webservice/business"/>
       <parameter name="allowedMethods" value="*"/>
       <parameter name="className" value="com.channelsoft.usboss.webservice.business.server.BusinessWebService"/>
    </service>
实例二:单点登陆权限认证的配置方式。
<service name="author" provider="java:RPC">
       <operation name="login" returnQName="loginReturn" returnType="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
           <parameter name="userId" type="xsd:string"/>
           <parameter name="userPwd" type="xsd:string"/>
       </operation>
<parameter name="wsdlTargetNamespace" value="http://www.channelsoft.com/webservice/author"/>
       <parameter name="allowedMethods" value="*"/>
       <parameter name="className" value="com.channelsoft.usboss.webservice.authorization.server.AuthorImp"/>
    </service>
第二步:启动resin。 可以采用本机启动resin。或在其他机器上
第三步:ie录入地址。
http://localhost:8080(端口号)/usboss(项目名称)/webservice(在web.xml中配置的那个映射文件)/business?wsdl
就会产生那个wsdl文件了。
7.4.1.1.2.2 或通过axis提供的命令,写一个接口类,然后生成wsdl文件。参见:生成Web服务的服务端和客户端代码
a)      同时也可通过vb脚本来测试一下,看看是否能用。参见:Webservice测试
7.4.1.2              生成客户端代码
7.4.1.2.1       不同的生成方式

Dos基本命令方式
Dos批处理命令方式
Eclipse ant方式

7.4.1.2.2        对不同的几种方式详细解释
1.方式一:通过一定命令操作来进行生成客户端。参数描述:参见客户端命令。
a)      在dos切换到axis工程的lib目录。
b)      实例1:java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -a -H -d -s -t -S true -p com.qnuse.zj114.webservice http://134.96.71.58/QnInterface/HzGsyj.asmx?wsdl
c)      实例2:执行:java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -s -d Session -Nurn:AddressFetcher2=com.qnuse.usboss.huawei.SMSCardService AddressBook.wsdl
解释:
                   i.              AddressFetcher2 是targetNamespace="urn:AddressFetcher2",有的wsdl文件中没有urn:则可以采用c)的实现方式
                ii.              –p 可以指定自己期望的包名,详细参见命令参数列表。
d)      实例3:Java -Djava.ext.dirs=lib -a –t -H -p com.qnuse.zj114boss.webserviceclient.huawei.SMSCardService org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl (也可以是一个wsdl文件名称)
2.方式二:通过脚本文件来生成。它将更快速。在axis的目录下,建一个dat或cmd后缀的文件,例如:axis-1_4.dat(axis-1_4.cmd)在这个文件中,文件内容:java -Djava.ext.dirs=lib -a –s -H -p com.qnuse.zj114boss.webserviceclient.huawei.SMSCardService org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl
这样你可以,每次仅需要修改这个文件wsdl地址或文件名,然后双击即可。
添加-s服务端的代码也将生成。-S true Seketon类也将生成。
3. (推荐方式)方式三:建立一个单独的新工程。可以复用axis-1_4工程。
1. 在网站下载的zip形式的axis-1_4,解压后文件导入eclipse。
2. 新建一个源文件(source folder),例如:devsrc。
3. 配置工程属性。把devsrc设置到build path,输出路径为:axis-1_4/webapps/axis/WEB-INF/classes,同时别忘了导入所有的jar文件。目的是:利用eclipse的编译功能,同时方便resin和tomcat来配置web-id。
4. 导入和配置相关文件。把build.xml文件放到devsrc下面,同时也要把将要生成的wsdl文件放到devsrc下面。
5. 配置build.xml文件。在<target wsdl2java> 设置:文件名称、package名称 、namespace 其他相关参数一般不用配置。公共参数我都已经配置好了。如果想问为什么?请看:axis的帮助文档中的ant task的设置。
6. 然后可以运行<target wsdl2java>。生成了你所有一直盼望出现的文件。
7. 最后,你就可以在相关的文件中进行修改了。每一个文件的使用。详细参见:(章)AXIS详细介绍
7.4.1.3              最终将在指定的包名下生成不同文件
根据生成命令参数不同,生成的文件数量也不同。当生成全部文件时,例如:

No.
文件
用途
1.
deploy.wsdd
MyService服务的部署描述文件
2.
MyService.java
MyService服务的接口文件,客户端和服务器端都需要
3.
MyServiceService.java
获得MyService服务的接口文件
4.
MyServiceServiceLocator.java
实现MyServiceService接口
5.
MyServiceSoapBindingImpl.java
实现MyService接口,服务器需要其中补充业务逻辑
6.
MyServiceSoapBindingSkeleton.java
MyService服务的服务端框架代码,实现MyService, org.apache.axis.wsdl.Skeleton接口
7.
MyServiceSoapBindingStub.java
MyService服务的客户端存根代码,实现MyService接口
8.
undeploy.wsdd
注销MyService服务的部署描述文件

 
7.4.1.4              在应用程序中通过代理类调用接口
详细参见,自动生成文件*testCase.java的调用方式。Java代码测试
Note:没有必要设计独立的proxy类,自动生成的代码*Locator本身就是一个proxy类。
7.4.2            其他注意事项
1.可以把dos命令存为.dat格式的文件。然后直接双击就可以完成。这样每次仅仅修改这个文件即可。.cmd格式的文件是Windows NT/2000的批处理文件,其实与BAT文件功能相同,只是为了与DOS/Windows 9x下的BAT有所区别。
2.只要在web.xml中配置了axis的servlet,当启动web服务器时,例如:然后在浏览器中,输入:http://10.130.24.169:8080/zjusboss/webservice/SysUserSynProcessor?wsdl
a)      10.130.24.169:8080/zjusboss 发布的地址和端口号和web-id(应用标识)
 如果本机启动就是localhost:8080/zjusboss
b)      webservice是在web.xml<servlet>中配置的。<url-pattern>/webservice/*</url-pattern>。 * 代表了不同的对外的服务名称(也就是对外的接口)。
3.根据不同的需要来设定不同的操作命令的参数,可以通过运行:java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java 看到详细的帮助。更多的指导参见:axis的指导文档。
7.4.3            生成客户端和服务器端命令详细实例
如果在dos环境下,首先导航到axis的目录。
7.4.3.1             帮助命令
java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java
7.4.3.2             生成客户端代码命令
java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -a -H -t -p com.qnuse.zj114.webservice http://134.96.71.142/QnInterface/SendMsgService.asmx?WSDL
7.4.3.3             生成全部代码命令
java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -a -H -d -s -t -S true -p com.qnuse.zj114.webservice http://134.96.71.58/QnInterface/HzGsyj.asmx?wsdl
7.5    Webservice服务器端开发
关于生成wsdl方式,可以参照:获得wsdl文件或wsdl url地址。
可以采用不同的方式进行开发。
7.5.1            在Axis发布的工程中直接开发
详细参见:代码工程(它和这个文档一起发布)。它是在axis1.4工程之上来开发的。
7.5.2            可以单独建立一个工程来开发
可以仿照axis发布的zip文件结构。
1.把相关jar导入。
2.采用合适的文件夹结构。
3.在eclipse中和resin(tomcat)服务器中,进行合理的配置。
7.5.3            在Spring框架下开发
1.写一个对外接口(即方法)。可以参见SysUserSynProcessorImp的开发。
2.该接口的实现类。写一个继承ServletEndpointSupport的类。onInit方法内,拿到getWebApplicationContext相关的dao或其他处理service。让dao或service来完成实际的操作。
3.一个部署描述文件,描述这个服务(接口),在server-config.wsdd文件中,手工加入相关的服务信息。它也可以通过axis的部署命令来生成的。
4.访问实例:http://134.96.71.27:7070/usboss/webservice/SysUserSynProcessor?wsdl(webservice是在web.xml的中对AxisServlet配置的名称)
7.6    Webservice访问方式
1.    启动web服务器,或者,用axis自带的服务器,启动方式是:java -Djava.ext.dirs=lib org.apache.axis.transport.http.SimpleAxisServer -p 8080, 或者把命令保存为cmd格式的文件。
2.    查看web.xml的配置。如果是:
 <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
 </servlet-mapping>
3.    通过http://134.96.71.189:8080/axis/services访问。可以看到已经发布的webservice。
7.7    Webservice服务发布
7.7.1            发布方式
1.JWS (Java Web Service) Files - Instant Deployment
2Custom Deployment - Introducing WSDD
JWS方式,部署简单,但是不能指定包名,因此不方便分类。而Custom Deployment方式,有更加了的灵活,可以指定包名,也可以方便的引用其它相关的类文件,对于复杂的应用非常适合。
7.7.2            wsdd文件发布
1. 修改server-config.wsdd的配置文件。它是webservice的描述文件。如果第一次组建webservice工程,并没有这个文件,可以用下面的命令方式来生成一个。
2. 采用axis发布命令:导航到WEB-INF/目录下,运行命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd(默认在当前目录下生成的部署描述server-config.wsdd)。
提示:可以把上面的命令保存为cmd、dat格式的文件。准备好文件后,直接双击即可。
7.7.3            部署步骤
1.Axis命令生成部署文件。在生成全部文件时,包括了deploy.wsdd文件。
2.执行axis发布命令或把webservice服务手工写到server-config.wsdd中。
a)      在WEB-info下面的server-config.wsdd文件包含了全部的对外发布的service。
b)      这个server-config.wsdd文件模板,可以在axis.jar解压后,来获得。或执行axis命令来产生。
c)      当web容器(web.xml中已经配置了axisServelt,同时也添加了相关jar包后),启动后,如果访问axis的相关服务,它将默认去找WEB-INF/下的:server-config.wsdd。
7.8    Webservice测试
可以通过多种方式来测试部署的webservice,一种是VB脚本测试,或是用axis产生的testcase文件。
7.8.1            Vb脚本测试
代码实例:
Dim soapclient, result
Set soapclient = CreateObject("MSSOAP.SoapClient30")
soapclient.mssoapinit "http://134.96.71.142/QnInterface/SendMsgService.asmx?WSDL"
 
result = soapclient.QnSendMail_GS("zhanglelei@channelsoft.com", "", "", "")
MsgBox     "result=" & result
7.8.2            Axis生成的testcase文件测试
没有必要来单独设计一个代理类,自动生成的代码*Locator本身就是一个proxy类。
可以用axis自动生成的*testCase.java文件,通过eclipse来直接测试webservice的调用情况。
    详细参见:测试webservice用例代码
7.9    Webservice日志跟踪
1.      使用log4j工具步骤?,
答:必须先引入相关的jar文件,然后正确的配置log4j.xml或log4j.property文件。并且放置到正确的文件夹中。
2.      log4j配置文件的选择?
答:建议采用log4j.xml文件,更加易读。
3.      在resin的conf文件中的log配置方式?
答:可以在log4j.xml文件中配置,也可以在resin.conf中配置,在<error-log id='logs/error.log'rollover-size='5MB'/>下面增加:<stdout-log id='logs/stdout.log' rollover-size='5MB'/>,就可以实现标准输出信息到stdou.log中。 和在log4j.xml中的配置是也可以达到相同的效果。
4.      commons-logging.properties的作用?
答:通过配置它,可以使你方便的配置,使用不同的log工具。如果删除它,就默认使用你当前的日志工具,例如:log4j, 详细看axis中的,文件中描述。当然,可以删除这个文件,仅采用log4j工具.
5.      是否在web.xml配置?
答:如果配置文件,log4j.properties 或 log4j.xml默认是在,WEB-INF/classes下,则将不必要在web.xml文件配置,系统将自动的进行加载。
6.      如何指定日志路径?
答:指定自己指定的记录日志的包路径。如果配置级别是:debug, 只有在包为com.int97时,有debug代码时,才会向文件中输出数据。
7.      log4j.additivity.XXX= 的含义?
`答:若为 false,表示Logger 的 appender 不继承它的父logger
若为true,则继承,这样就兼有自身的设定和父logger的设定
分享到:
评论

相关推荐

    WebService开发和使用指南

    WebService开发和使用指南 在IT领域,WebService是一种基于开放标准的、平台和语言无关的通信协议,用于在不同系统之间交换数据。它通过XML(eXtensible Markup Language)进行数据编码,使用SOAP(Simple Object ...

    webservice教程和开发指南

    1. 定义服务接口:使用Java注解(如@WebService)来声明服务接口,包括服务端点接口(SEI)和消息处理器接口。 2. 实现服务:为接口提供具体实现,处理客户端请求。 3. 创建WSDL:JAX-WS自动生成WSDL文件,描述服务...

    EAS-WebService开发指南.pdf

    EAS-WebService开发指南 本文档旨在指导开发者如何使用EAS-WebService开发指南...通过本文档,开发者可以了解如何使用EAS-WebService开发指南来构建Web服务,并且了解了WebService的开发流程和客户端开发的注意事项。

    WebService开发手册

    WebService 开发手册 WebService开发指南

    金蝶EAS_V7.5_WebService开发指南_EASwebservice开发_金蝶开发_

    在金蝶EAS V7.5的Web Service开发指南中,详细介绍了以上各个步骤,包括具体的API使用示例、配置示例和常见问题解答。开发者应仔细阅读并参照指南实践,以充分利用金蝶EAS的Web Service功能,实现企业系统的高效集成...

    BOSWebService开发指南[收集].pdf

    BOSWebService开发指南[收集].pdf

    C++环境下使用gsoap开发WebService接口操作指南

    "C++环境下使用gsoap开发...本文为读者提供了一个全面的C++环境下使用gsoap开发WebService接口的操作指南,从WebService的概念和特点到gsoap的使用流程和选项,希望能够帮助读者更好地理解和掌握WebService开发技术。

    webservice开发指南

    2. "Web Service开发指南.pdf":这是一份全面的Web服务开发指南,可能涵盖了Web服务的基本概念、架构、设计原则、开发工具、测试方法等。读者可以通过这份文档深入理解Web服务的全貌,包括如何创建WSDL文件,如何...

    WebService开发指南.rar

    WebService开发指南.rar WebService开发指南.rar

    WebService之CXF开发指南

    ### WebService之CXF开发指南 #### 一、概述 WebService技术已经成为企业级应用中不可或缺的一部分,它使得不同系统之间能够以标准化的方式进行交互。在众多WebService框架中,Apache CXF因其灵活、强大的功能和...

    axis2-WebService-开发指南.docx

    Axis2 WebService 开发指南 Axis2 是一个基于 Java 的开源 WebService 框架,具有高效、灵活、可扩展等特点。以下是对 Axis2 WebService 开发指南的知识点总结: 1. 环境准备: Axis2 的开发需要下载相关的 jar ...

    webservice 开发过程 详解

    ### WebService开发过程详解 #### 一、概述 本文将详细介绍如何使用Eclipse集成开发环境(IDE)结合Tomcat服务器及Axis框架来开发一个简单的WebService应用。对于初学者来说,这是一个很好的入门指南,通过本教程...

    BOS_V6.3_BOS开发指南_WebService.pdf

    EAS BOS开发指南中的WebService开发涉及多个关键知识点,主要包括: 1. BOSWebService的原理与功能 - Webservice是基于SOAP、WSDL和UDDI技术,通过XML格式的数据交换实现不同平台和应用系统间的协同工作。 - ...

    WebService开发指南 源码

    【WebService开发指南 源码】是一份详细指导如何使用AXIS进行WebService开发的源代码集合,主要聚焦在AXIS工具的使用上。AXIS是一个流行的开源Java库,用于实现Web Services,它允许开发者轻松地创建和部署SOAP...

    WebService XFire开发指南

    【WebService XFire开发指南】 在IT行业中,WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的协议,允许不同系统之间的应用程序通过互联网进行通信。它提供了一种松散耦合的方式,使得分布式系统可以共享数据...

Global site tag (gtag.js) - Google Analytics