?
?
1?Web服务接口
关于本章
本章描述内容如下表所示。
标题 |
内容 |
1.1?Web Service技术 |
介绍Web Service技术。 |
?
1.1?Web Service技术
1.1.1?Web Service消息内容遵循的标准
l???????????SOAP
所有Web Service消息符合WS-I基本纲要(WS-I Basic Profile Version 1.0:"Final Material")的SOAP使用定义。
编码方式为:“document/literal”。
发起业务请求时,在SOAP HEADER里设置timeStamp、sendAddress、platType、provType、TID、version、callerSID、providerSID、providerEID、providerECID、providerIFName、UID、callingType参数,然后在服务器端提取参数,进行相应处理。
l???????????XML
所有Web Service消息符合WS-I基本纲要(WS-I Basic Profile Version 1.0:"Final Material")的XML使用定义。
l???????????HTTP
所有Web Service消息符合WS-I基本纲要(WS-I Basic Profile Version 1.0:"Final Material")的HTTP使用定义。
2?开发流程
关于本章
本章描述内容如下表所示。
标题 |
内容 |
2.1开发前的准备 |
介绍在开发业务实例前的准备工作。 |
2.2通过编写JAVA类文件生成WSDL文件。 |
介绍怎么通过编写JAVA类文件生成WSDL文件。 |
2.3客户端业务开发实例 |
介绍向用户开发helloword。 |
2.1?开发前的准备工作
2.1.1?PC机配置要求
选择一台PC机作为开发平台。PC机的最低配置要求如表2-1所示。
表2-1?PC机最低配置要求表
配置 |
说明 |
操作系统 |
l??Windows 2000 Server SP4 l??Windows XP SP2 |
浏览器 |
IE6.0 |
CPU |
P4 1.8GHz |
内存 |
512MB |
硬盘 |
10GB |
?
2.1.2?工具下载
在以下提供的工具下载页面中找到指定的下载链接,下载各个工具,并将其安装在C:Program Files下。
JDK1.5
l???????????JDK1.5下载页面。
http://java.sun.com/javase/downloads/index_jdk5.jsp
l???????????jdk-1_5_0_13-windows-i586-p.exe下载链接。
http://192.18.108.145/ECom/EComTicketServlet/BEGINA3B0EEAA08A312C1FAEC55BAC2297BBB/-2147483648/2402513439/1/852050/851882/2402513439/2ts+/westCoastFSEND/jdk-1.5.0_13-oth-JPR/jdk-1.5.0_13-oth-JPR:3/jdk-1_5_0_13-windows-i586-p.exe
l???????????安装JDK。
双击jdk-1_5_0_13-windows-i586-p.exe按照默认配置安装JDK1.5。
Eclipse(开发环境)
l???????????Eclipse下载页面。
http://www.eclipse.org/downloads
l???????????eclipse-SDK-3.3.1-win32.zip下载链接。http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.3.1-200709211145/eclipse-SDK-3.3.1-win32.zip&url=http://download.actuatechina.com/eclipse/eclipse/downloads/drops/R-3.3.1-200709211145/eclipse-SDK-3.3.1-win32.zip&mirror_id=385
l???????????安装Eclipse。
解压缩eclipse-SDK-3.3.1-win32.zip即可(不需安装)。
Tomcat(Web服务器)
l???????????Tomcat6.0下载页面。
http://tomcat.apache.org/download-60.cgi
l???????????apache-tomcat-6.0.14.zip下载链接。
http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.zip
l???????????安装Tomcat。
解压缩apache-tomcat-6.0.14.zip即可(不需安装)。
AXIS(SOAP引擎)
l???????????AXIS2下载页面。
http://ws.apache.org/axis2/download.cgi
l???????????axis2-1.4-bin.zip下载链接。
http://apache.mirror.phpchina.com/ws/axis2/1_4/axis2-1.4-bin.zip
l???????????axis2-1.4-war.zip下载链接。
http://apache.mirror.phpchina.com/ws/axis2/1_4/axis2-1.4-war.zip
l???????????安装AXIS。
解压缩axis2-1.4-bin.zip和axis2-1.4-war.zip即可(不需安装)。
2.1.3?环境变量配置
按照如下步骤配置JAVA_HOME和AXIS2_HOME环境变量。
????????????????????????????????步骤 1?????右键单击“我的电脑”。
????????????????????????????????步骤 2?????选择“属性”。
????????????????????????????????步骤 3?????单击“高级”页签。
如图2-1所示。
图2-1?系统属性
?
????????????????????????????????步骤 4?????在图2-1中单击“环境变量”。
????????????????????????????????步骤 5?????增加系统变量JAVA_HOME,变量值为JDK安装目录。
如图2-2所示。
图2-2?新建JAVA_HOME系统变量
?
????????????????????????????????步骤 6?????增加系统变量CLASSPATH。
l???????????变量名:
CLASSPATH
l???????????变量值:
%JAVA_HOME%lib;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar
????????????????????????????????步骤 7?????在Path系统环境变量中增加axis2-1.4的bin目录,单击“确定”。
如图2-3所示。
图2-3?编辑Path系统环境变量
?
l??????在设置环境变量的值时,新增的环境变量值与已存在的环境变量值之间用“;”隔开。
l??????其中D:axis2-1.4bin需要根据实际情况设置。
????????????????????????????????步骤 8?????单击编辑用户变量界面里的“确定”。
????????????????????????????????步骤 9?????环境变量界面里的“确定”
---结束
2.1.4?解压缩axis2
具体操作步骤如下。
????????????????????????????????步骤 1?????解压缩axis2-1.4-war.zip。
????????????????????????????????步骤 2?????将axis2.war拷贝到%TOME_HOME%webapps目录下。
????????????????????????????????步骤 3?????双击%TOME_HOME%binstartup.bat,启动Tomcat服务器。
----结束
启动过程会自动将axis2.war解压缩,在%TOME_HOME%webapps?下生成axis2目录。
2.2?通过JAVA生成WSDL文件
2.2.1?写java类
????????????????????????????????步骤 1?????在Eclipse中新建一个java工程。
????????????????????????????????步骤 2?????单击“file > new > java>project”。如图2-4所示。
图2-4?新建java工程
?
????????????????????????????????步骤 3?????输入工程名,其他默认,单击“finish”。如图2-5所示。
图2-5?输入工程名
?
步骤4??生成类?hello.java
????????????????????????????????步骤 4?????根据接口文件在类中写方法和参数,如图2-9所示。
图2-6?类中写的方法和参数
?
2.2.2?使用AXIS2的工具生成wsdl文件
????????????????????????????????步骤 1?????拷贝生成的java文件的.class文件。需要拷贝bin目录下面所有的包,如图2-10所示。
????????????????????????????????步骤 2?????复制到axis2的bin目录下,如图2-11所示。
图2-7?axis2的bin目录
使用java2WSDL命令将“Hello.class”转化为“Hello.wsdl”文件。如图2-13所示。
图2-8?转化文件
?
?
生成的wsdl文件如下:
?
l??????使用全路径。
l??????中间的–of,–cn等字符请参照本地的系统所给的命令,可以执行java2WSDL命令查看。
----结束
?
2.2.3?修改WSDL文件使其符合规范
查看规范的wsdl文件,将命名空间统一,按照规范wsdl中的标准来修改。
2.3?客户端业务开发实例
2.3.1?使用工具将wsdl文件生成java源码
使用工具按照如下步骤将wsdl文件生成java源码。
????????????????????????????????步骤 1?????运行cmd,进入命令行控制台,进入axis2的bin目录下,如图2-25所示。
?
????????????????????????????????步骤 2?????使用“WSDL2java.bat”生成一个客户端WSDL2java.bat -uri,如图2-26所示。
图2-9?客户端源码
?
????????????????????????????????步骤 3?????可以看到bin目录下产生了一个src文件夹,准备将其导入到eclipse工程中,如图2-27所示。
图2-10?Src文件夹
?
????????????????????????????????步骤 4?????在eclipse中创建一个普通的java工程,操作步骤为单击“file > new > javaproject”,如图2-28所示。
图2-11?创建java工程
????????????????????????????????步骤 5?????创建名为hello_clint的工程
????????????????????????????????步骤 6?????点开新建的工程,可以看到工程下的库和一个源文件夹,导入axis2所需的jar包。
如下图:
?
----结束
2.4?生成服务端代码
2.4.1?安装配置必要工具
一些必要工具的安装,配置具体步骤如下。
????????????????????????????????步骤 1?????获得一个tomcat安装包和axis2-1.4-war.zip。
????????????????????????????????步骤 2?????安装tomcat,解压axis2-1.4-war.zip到%TOMCAT_HOME%webapps目录下。
????????????????????????????????步骤 3?????双击% TOMCAT _HOME%binstartup.bat,启动Tomcat服务器。
????????????????????????????????步骤 4?????启动后看是否在% TOMCAT _HOME%webapps下生成了axis2目录,如生成则说明axis2安装成功。
2.4.2?生成服务端源代码
生成服务端源代码的具体步骤如下。
????????????????????????????????步骤 1?????参见2.3.1?步骤?1。
????????????????????????????????步骤 2?????使用WSDL2java.bat -uri weatherInfoNotify.wsdl –ss –sd生成服务端代码。
????????????????????????????????步骤 3?????能在bin目录下看到新增了src和resources文件夹。
新增的文件夹会覆盖以前的src文件夹,请备份以前的文件夹。
????????????????????????????????步骤 4?????参见2.3.1?步骤?4在eclipse中创建一个普通的java工程,操作步骤为单击“file > new > javaproject”,如图2-28所示。
????????????????????????????????步骤 5?????参见2.3.1?步骤?5,把名字命名为hello_server。
????????????????????????????????步骤 6?????参见2.3.1?步骤?6,和2.3.1?步骤?8,完成后如图2-37所示
图2-12?生成代码
?
其中HelloSkeleton.java为业务代码实现类,需要重写实现方法。
----结束
2.4.3?将服务端导出并发布到tomcat上
????????????????????????????????步骤 1?????将工程导出为一个xxx.aar包(本例为hello.aar),放到% TOMCAT _HOME%webappsaxis2WEB-INFservices中,如图2-39?所示。
????????????????????????????????步骤 2?????选中axis2的bin目录下的resources文件夹中的services.xml文件。
????????????????????????????????步骤 3?????将选中文件放到weather.aar包中的META-INF目录下
?
点击hello_server build.xml文件生成hello.aar包,将工程文件中的service.xml替换hello.aar包中 META-INF中的service.xml。
然后放在?$tomcat_home webappsaxis2WEB-INFservices目录下,然后启动tomcat.
?
?
Hello.aar位置如图所示:
?
?
?
启动tomcat?如图所示,表示发布成功
2.5?简单调测
请参考如下操作简单调试发布的内容
????????????????????????????????步骤 1?????单击eclipse客户端工程中的Test.class类,如图2-46所示。
图2-13?Test.class类
?
3?心得
3.1?编写wsdl文件
3.1.1?修改wsdl文件
利用wsdl文件通过
WSDL2java.bat -uri??hello.wsdl –ss –sd生成服务端代码。
WSDL2java.bat -uri hello.wsdl?客户端代码。
3.1.2?修改生成的服务端代码
??生成的骨架代码为业务实现方法,需要重写实现方法?类名为?*.Skeleton.java
3.1.3?发布?*.aar包
通过?服务端代码build.xml生成?aar包,将?工程目录recourseservice.xml?替换?buildlib*.aar包中的service.xml文件。然后copy到tomcat目录?webappsaxis2WEB-INFservices?下。