1、ant 开发weblogic webservice基于Weblogic Server 8.1 ant工具开发Web Service时间:2005-10-19作者:老Z浏览次数: 7786 本文关键字:WebLogic Server, Web Services, Web服务,Ant文章工具推荐给朋友打印文章前言:本文不是专门讲述Web Service技术的,读者在阅读本文之前需要具备一定的SOAP和Web Service知识基础,同时对Weblogic Server的使用也应该熟悉。如果要自己动手实践本文的例子,就需要安装Weblogic Server 81,尽管本文是以weblogic ser
2、ver 81为测试环境,但是针对weblogic server 7下也是差不多的。本文只是起个抛砖引玉的作用,如果想深入研究Web Service的开发,还需要参考、学习相关的资料,包括Weblogic Service的相关文档。一、概述在JBuilder中也支持开发基于weblogic的web service,不过实际上在JBuilder下开发web service也是基于ant任务来生成和构造web service的。但是,当初笔者在一个项目中使用JBuilder下自动生成构造ant脚本生成的web service时碰到了一个问题,通过JBuilder生成的web service,如果你的
3、web service调用接口中存在一个或者多个String类型参数的时候,在生成的wsdl文件中对该接口的参数命名不会按照你的后端组件对应方法中参数的 名字,而是以string、string0、string1等形式命名的。而在那个项目中需要在Delphi环境中调用web service,问题就出现了,string在Delphi中是关键词,产生了冲突,不能进行调用。于是笔者决定采用自编写ant脚本的方式来生成和构造 web service来解决前面所述Delphi调用的问题。BEA Weblogic提供了一些Ant任务,用来帮助开发者生成、构造一个Web服务的重要部件,(例如:序列化类、客户端
4、jar支持库、以及web- services.xml描述文件),并且把一个Weblogic Web 服务的所有部分打包成一个可部署的EAR文件。BEA Weblogic所提供的Web服务Ant任务,支持从实现了Web Service接口的普通JAVA源文件和EJB jar生成Web Service部件,也支持从WSDL描述文件生成,同时支持基于http/https传输协议和JMS传输协议的Web Service。在这一节我们只讲述通过基于一个普通JAVA类作为后端组件来实现的Web Service,传输协议使用http(基于https的方式将在后述关于Web Service安全的部分讲述)。二
5、、使用Weblogic ant工具生成Web Service我们先建立D:wls_ws_demo的工作目录,在此目录下分别建立src、build、ddfiles、webapp、test目录。具体用途后文会涉及到。首先我们编写一个实现了两个Web Service接口的普通JAVA类: package com.wnetw.ws.demo;public class HelloWorldWS public String sayHello() return Hello World!; public String welcome(String name) return Hello + name + ,We
6、lcome to WebService!; 上面两个方法就不需要解释了,很简单。把此类按封装包一致的路径放置在src目录下。下面是本示例中ant脚本文件内的属性设置: property name=namespace value= 上面的属性应该不是很难理解,关键的是对于bea weblogic server安装目录和构造生成文件的路径说明,其次是对classpath的设置,需要用到的两个weblogic库是weblogic.jar和webservices.jar。接着我们看看我们在本节中使用的Weblogic提供的Ant任务:1、source2wsddsource2wsdd Ant任务最基本的
7、功能是根据我们编写的普通JAVA类源文件生成一个Web Service所必需的两个部件:web-services.xml和.wsdl描述文件。下面是针对上面HelloWorldWS.java对应的Ant脚本: 属性说明javaSource:指定web service的实现后端组件,这里是普通JAVA类com.wnetw.ws.demo HelloWorldWS.java。注意属性里面是对源文件目录路径设置,而不是包路径。ddFile:生成的web service部署描述符文件web-services.xml的存放路径。wsdlFile:生成的.wsdl文件存放的路径和名字。serviceURI
8、:客户应用程序调用此Web服务的URL中的Web Service URI部分。注意:必须以“/”开头。例如:/ HelloWorldWS 。同时这个URI属性也会成为生成的web-services.xml 部署描述符文件中元素的uri属性。例如:本机访问本web service例子的url是http:/localhost:7001/ WSDemo/ HelloWorldWS上面的serviceURI属性就指定了上述url中的/ HelloWorldWS这一部分。2、clientgenclientgen可以用来生成JAVA环境下客户端应用调用一个Web Service客户端jar支持库。可以通过
9、wsdl文件来生成,也可以通过一个包含web service实现的ear文件来生成。下面是clientgen ant任务的脚本示例: 这里采用从前面source2wsdd任务生成的wsdl文件来生成客户端jar支持库。通过wsdl属性指定。3、war这是ant提供的标准任务,这里与其他普通的war包有一点区别是,需要把web-services.xml文件打包到war中去。说明:需要准备web.xml,后面对于安全设置的时候还需要weblogic.xml文件,这里先都打包进去,这些文件都需要提前编辑准备好:-Web.xml-!DOCTYPE web-app PUBLIC -/Sun Micros
10、ystems, Inc./DTD Web Application 2.3/EN wsdl text/xml -weblogic.xml-这个文件没设置,在后面关于安全的处理里面需要这里配置角色映射。下面是war ant脚本示例: 4、ear这也是ant标准任务,需要注意的是必须提前编写application.xml文件,下面针对本文例子的application.xml文件: !DOCTYPE application PUBLIC -/Sun Microsystems, Inc./DTD J2EE Application 1.3/EN HelloWorldWS.war WSDemo 说明:con
11、text-root元素指定此Web Service所在Web应用的应用根。例如:本机访问本web service例子的url是http:/localhost:7001/WSDemo/ HelloWorldWS上面的context-root元素就指定了上述url中的WSDemo这一部分。下面是本文例子的ear ant任务脚本: 核心的ant任务说明完了,下面是完整的ant脚本文件:- build_wls_all.xml- property name=namespace value= 运行ant生成Web Service:打开命令行窗口,转到工作目录D:wls_ws_demo下,在此目录下先运行D
12、:beaweblogic81serverbin setWLSEnv.cmd(此cmd文件具体路径与你的weblogic platform81实际安装目录相关)进行环境设置,然后运行:D:beaweblogic81serverbinant.bat -buildfile build_wls_all.xml。运行结束,出现“BUILD SUCCESSFUL”,那就代表OK了。转到工作目录下的build目录,你就会看到HelloWorldWS.ear这个文件。三、测试Web Service本节将讲述对前一节里生成的Web Service HelloWorldWS进行测试。启动Weblogic Serv
13、er,进入Weblogic Server控制台,在Deployments-Applications下部署上节生成的HelloWorldWS.ear。1、通过Weblogic自动生成的测试主页测试部署成功后,在浏览器中输入http:/localhost:7001/WSDemo/HelloWorldWS访问Weblogic Server默认生成的上述HelloWorldWS Web Service的测试主页。如下图: 图上列出了HelloWorldWS Web Service上的两个方法:welcome和sayHello。点击welcome连接进入wecome方法的测试页,如下图: 在上述页面输入“老Z”,提交后就会看到如下图页面: 测试的结果跟上节中的HelloWorldWS.java实现此方法的结果是一样的。测试sayHello方法跟上面过程一样。在测试主页中还能看到在JAVA环境下,基于clientgen ant任务生成的jar客户端stub支持库调用此HelloWorldWS Web服务的代码示例。2、使用JAVA程序调用Web Service下面实际编写一个java测试程序来调用上述Web Service。 - HelloWorldWSTest.java -import com.wnetw.was.dem
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1