开发WebService应用小结_第1页
开发WebService应用小结_第2页
开发WebService应用小结_第3页
开发WebService应用小结_第4页
开发WebService应用小结_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Axis开发WebService应用小结1. 开发环境准备使用软件版本:,Weblogic8.1,axis1.4,Eclipse3.2。JDK、Weblogic、Eclipse3.2准备过程略。下载axis1.4bin.zip,解压后将lib文件夹中的jar包拷贝至/web-inf/lib目录中,还需要包括activation.jar和mail.jar,分别下载和,axis需要用到这2个jar中的类。如图:2. Axis配置新建Web Project,在web.xml文件中添加如下配置加入axis:<!- 添加Axis1.4Servlet -><servlet> <

2、;servlet-name>AxisServlet</servlet-name> <servlet-class></servlet-class> <load-on-startup>2</load-on-startup> </servlet><!- Axis1.4的发布路径 -><servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-

3、pattern></servlet-mapping> 在/web-inf/目录下添加webServices.xml(可以指定其他目录,该文件为Axis与Spring集成所需要的文件,为spring的bean配置文件),在web.xml文件中加入以下配置将该文件加入到工程中去:<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/webServices.xml</param-value></contex

4、t-param>以上两个配置可以在已经存在的web project中添加,加入以上配置后就可以使用Axis开发WebServices程序了。3. Axis服务端开发为WebServices服务编写接口类及其实现类,样例接口类如下:public interface ISayHello public String sayHello(String name);public class SayHelloWebService implements ISayHello public String sayHello(String name)String rs = " Hello my fri

5、end "+name+" ! " System.out.println();return rs;在/web-inf/目录下新建server-config.wsdd文件部署WebServices服务:<deployment xmlns="/axis/wsdd/" xmlns:java="/axis/wsdd/providers/java"><handler name="LocalResponder" type=

6、"java:org.apache.axis.transport.local.LocalResponder"/><handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/><service name="SayHello" provider="java:RPC"><parameter name="wsdlTargetNamespace" value

7、="urn:soap.axisspring"/><parameter name="className" value="com.tfhz.szds.webservice.test.SayHelloWebService" /><parameter name="allowedMethods" value="*" /></service><transport name="http"> <requestFlow> <

8、;handler type="URLMapper"/> <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> </requestFlow><parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/> <parameter name="qs:wsdl" value=&q

9、uot;org.apache.axis.transport.http.QSWSDLHandler"/> <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/></transport> <transport name="local"> <responseFlow> <handler type="LocalResponder"/>

10、</responseFlow> </transport></deployment>其中红字的部分是WebServices服务的配置部分,该文档解释如下:a. deployment为文档根节点,必须包括该节点,其中后面的属性不能更改。b. 配置handler节点,使用handler可以实现类似filter的功能,此处用到URLMapper和LocalResponder两个handlerc. 每个WebServices服务都需要配置一个Service节点,name属性配置服务名称,provider属性配置服务访问方式,本例中是采用RPC方式;子节点paramet

11、er配置service的参数,参数wsdlTargetNamespace配置名称空间,参数className配置实现服务类,参数allowedMethods表示那些方法是WebServices服务可以调用的方法,“*”表示所有方法,可以配置多个方法,用“,”分隔。Service可以通过增加requestFlow节点引用某个handler,在service执行之前会先执行handler的invoke方法,可以通过handler实现一些数据验证或者访问合法性的校验。d. Transport节点定义了服务端的传输方式,本例中定义了两个transport,http和local。4. Axis客户端开发

12、public class WebServiceClientTest public static void main(String args) try /WebService服务地址String nameSpaceUrl = "18:7001/WebRoot/services/SayHello"/开始创建调用对象Service service = new Service();Call call = null;call = (Call)service.createCall();/* * 开始调用SayHello服务 */WebServicee

13、服务调用地址call.setTargetEndpointAddress(new .URL(nameSpaceUrl);/WebServicee服务调用方法名称call.setOperationName("sayHello");/WebServicee服务调用方法参数call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);/WebServicee服务调用方法返回值类型call.setReturnType(XMLType.XSD_STRING);String reString = (St

14、ring)call.invoke(new Object"liwei");System.out.println(" WebService 服务调用成功 result= "+reString); catch (Exception e) e.printStackTrace();构造如上代码,运行main方法console中打印出: WebService 服务调用成功 result= Hello my friend liwei !Here is WebService .注意:根据以上步骤开发webservice,运行客户端时可能会报以下错误:以下是从网上找到的解

15、决办法:How to resolve:WebLogic 8.1WebLogic 8.1 ships with webservices.jar that conflicts with Axis' saaj.jar and prevents Axis 1.2 from working right out of the box. This conflict exists because WebLogic uses an older definition of javax.xml.soap.* package from Java Web Services Developer Pack Vers

16、ion 1.0, whereas Axis uses a newer revision from J2EE 1.4.However, there are two alternative configuration changes that enable Axis based web services to run on Weblogic 8.1.* In a webapp containing Axis, set <prefer-web-inf-classes> element in WEB-INF/weblogic.xml to true. An example of weblo

17、gic.xml is shown below:<weblogic-web-app><container-descriptor><prefer-web-inf-classes>true</prefer-web-inf-classes></container-descriptor></weblogic-web-app>If set to true, the <prefer-web-inf-classes> element will force WebLogic's classloader to load classes located in the WEB-INF directory of a web application in pref

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论