使用Axis C++开发Web服务的基本过程可以简单描述如下:
1、使用Java语言描述WEB服务
3、使用WSDL2Ws工具生成服务端代码框架
4、编码实现service,并部署服务
5、使用WSDL2Ws工具生成客户端代码框架
6、编码实现客户端
三、实例演示
这里以一个简单的加法Add服务来说明用Axis C++构建webService的过程。
1、使用Java语言描述WEB服务
Axis C++中我们必须先定义好WSDL后方可生成用来实现该服务的代码框架,这一点与Axis Java不同。生成WSDL方法很多,可以使用Java2WSDL工具,当然也可以手工编写,这里使用Java2WSDL工具生成。下面我们对Add服务用Java语言描述:
public interface Add{
public int add(int x, int y)
}
只要方法的声明即可,不需要实现方法,因此我们使用接口来定义。将上面的代码保存为Add.java。
2、使用Java2WSDL工具生成WSDL文件
办法有两种:1.zend studio生成
对于zend studio 9之前的版本貌似直接生成:
File ->New ->Other->Webservice->WSDL
对于zend studio 9需要安装wsdl插件:
1、打开zendstudio9,选择help(帮助)->welcome
2、在右边的列表中找到WSDL Support,勾选
3、点击Apply changes(应用修改)
4、zde会自动安装,然后提示要重启,点击restart now(现在重新启动)
wsdl支持安装完毕,下面我们来生成一个wsdl文件,步骤如下:
1、选择保存wsdl的项目文件夹
2、右键-new(新建)->other(其他)
3、在d出的对话框中选择web services,在下级菜单中选择WSDL file,点击next进入下一步
4、命名你的wsdl文件,点击next进入下一步
5、修改target namespace(目标名称空间),其他不变,点击finish。
2.利用SoapDiscovery.class.php生成
在大多数情况下我们都需要为我们的服务提供一个WSDL文件,而 Axis2's Java2WSDL 是专门用来生成WSDL文件的D专用工具,如果你要在命令行模式下进行生成WSDL文件,首先需要保证你的环境变量AXIS2_HOME是否已经配置OK,同时还要保证把%AXIS2_HOME%\bin加入到你的path环境中,要生成 WSDL文件,首先要保证你的class能够编译成功,而且已经编译成功,然后进入class文件编译后的根目录(在JBuilder中是classes,在Eclipse中是bin目录)这时,生成WSDL文件的准备工作已经OK。\x0d\x0a\x0d\x0a下面是生成WSDL文件时的可选参数和参数说明:\x0d\x0a---------------------------------------------------------------------------------\x0d\x0aUsage java2wsdl -cn : class file name\x0d\x0a-o : output file location\x0d\x0a\x0d\x0a-cp : list of classpath entries - (urls)\x0d\x0a\x0d\x0a-tn : target namespace\x0d\x0a\x0d\x0a-tp : target namespace prefix\x0d\x0a\x0d\x0a-stn : target namespace for schema\x0d\x0a\x0d\x0a-stp : target namespace prefix for schema\x0d\x0a\x0d\x0a-sn : service name\x0d\x0a\x0d\x0a-of : output file name for the WSDL\x0d\x0a\x0d\x0a-st : style for the WSDL\x0d\x0a\x0d\x0a-u : use for the WSDL\x0d\x0a\x0d\x0a-l : address of the port for the WSDL\x0d\x0a\x0d\x0a-nsg : fully qualified name of the class that implements NamespaceGenerator\x0d\x0a\x0d\x0a-p2n [,,] ...\x0d\x0a\x0d\x0a-efd : Setting for elementFormDefault (defaults to qualified)\x0d\x0a\x0d\x0a-afd : Setting for attributeFormDefault (defaults to qualified)\x0d\x0a\x0d\x0a-xc : Extra class for which schematype must be generated.\x0d\x0aUse as : -xc class1 -xc class2 ...\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a典型地,进入你的工程的二进制编译根目录,执行命令模板如下:\x0d\x0ajava2wsdl -cp . -cn [PACKAGENAME].[CLASSNAME]-of [FILENAME].wsdl\x0d\x0a\x0d\x0a现在我们假设在samples.helloworld.service.axiom包下面有个HelloWorldService类,工程的类文件编译后存放在build\classes目录下,那么,首先进入该目录中,然后执行以下命令:\x0d\x0ajava2wsdl -cp . -cn samples.helloworld.service.axiom.HelloWorldService -of HelloWorldService.wsdl\x0d\x0a\x0d\x0a执行后的CMD提示如下说明已经成功执行了:\x0d\x0a\x0d\x0aUsing AXIS2_HOME: D:\axis2-1.1.1\x0d\x0aUsing JAVA_HOME:C:\Program Files\Java\jdk1.5.0_06欢迎分享,转载请注明来源:内存溢出
评论列表(0条)