WebService环境的配置与开发

1、环境配置(基于64位系统的)

a、JDK安装:jdk-6u39-windows-x64.exe 配置JAVA_HOME和Classpath以及Path
设置系统环境变量:
JAVA_HOME=C:\Java\jdk1.6.0_39
Classpath=.;%JAVA_HOME%\lib;
Path=%JAVA_HOME%\bin
测试安装成功的方法:代开cmd,输入java version回车,看到java的版本号

b、tomcat安装:apache-tomcat-6.0.43.exe 配置TOMCAT_HOME、Classpath和Path等
设置系统环境变量:
TOMCAT_HOME=C:\Program Files\Apache Software Foundation\Tomcat 6.0
CATALINA_BASE=C:\Program Files\Apache Software Foundation\Tomcat 6.0
CATALINA_HOME=C:\Program Files\Apache Software Foundation\Tomcat 6.0
Classpath=%TOMCAT_HOME%\lib\servlet-api.jar;
Path=%CATALINA_HOME%\bin;
测试安装成功的方法:运行tomcat的exe程序,http://localhost:8080 可以打开tomcat主页

c、axis2安装:axis2-1.6.2-bin.zip和axis2-1.6.2-war.zip
axis2-1.6.2-bin.zip解压后待用;
axis2-1.6.2-war.zip解压后放在tomcat的webapp目录下,会自动解压成为一个axis2文件夹
测试安装成功的方法:运行tomcat的exe程序,http://localhost:8080/axis2/services/listServices可以看到Version服务;

d、Myeclipse安装:
[myeclipse.10.1.7.for.windows.x86.and.x64].myeclipse-10.7.1-offline-installer-windows.exe

e、Myeclipse破解:Myeclipse10.7.1及以下破解
测试破解成功的方法:参见Myeclipse10.7.1及以下破解(本机破解无效,可以安装别的版本,应该也差不多)

f、axis2的Myeclipse插件安装与修改(避免生成WSDL错误,所以要修改):
axis2-eclipse-codegen-wizard.zip 解压后将文件夹:Axis2_Codegen_Wizard_1.3.0
axis2-eclipse-service-archiver-wizard.zip 解压后将文件夹:Axis2_Service_Archiver_1.3.0
拷贝到Myeclipse10的安装目录下的dropins文件夹下;
避免生成WSDL错误修改方法:参见“eclipse Axis2 Codegen plugin报错问题”
测试安装成功的方法:打开菜单:文件->new->others,可以在新跳出的控件中找到AXIS2 Wizards;

2、WebService开发:
首先:axis2-1.6.2-bin.zip解压后的lib文件夹下的所有jar包在创建webservice工程时要作为用户lib被引用(服务端和客户端都要引用),所以到时候在菜单window-->preferences-->java-->build path-->user libaries下面添加一个axis2的用户库,以后直接引用它;

a、服务器端开发:
(1)建立一个普通的Java程序,建立一个class,实现一个函数,引用axis2用户库;
(2)打开 file-->new-->others对话框,找到AXIS2 Wizards;
(3)如果要生成WSDL文件,那么选择第一个:Axis2 code generator,按照提示一步一步根据那个java class生成一个WSDL;
(4)如果要生成aar文件(部署在tomcat的axis2的services文件夹下,给调用客户端访问的文件),那么选择第二个:Axis2 service Archiver,按照提示一步一步生成aar文件(位置可以随意)

,将aar文件拷贝到tomcat的axis2的services文件夹下。
测试成功的方法:启动tomcat,访问http://localhost:8080/axis2/services/listServices,则可以看到已经部署的服务的名称出现在列表中,并且可以点击并打开其WSDL文件。还可以通过http://localhost:8080/axis2/services/Try/sayHello?name=lijing&test=10这样的URL获取服务的返回值


b、客户端开发:
(1)建立一个普通java程序,引用axis2用户库,可以用main函数来调用服务,具体调用代码如下:
public static void main(String[] args) throws Exception
{
// 构造远程调用类
RPCServiceClient serviceClient = new RPCServiceClient();

Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(
"http://127.0.0.1:8080/axis2/services/HelloDemo/");
options.setTo(targetEPR);

// 构造调用serviceClient.invokeBlocking的三个参数
QName opAddEntry = new QName("http://xldz", "sayHello");
Object[] opAddEntryArgs = new Object[] { "超人" };
Class[] classes = new Class[] { String.class };

System.out.println(serviceClient.invokeBlocking(opAddEntry,
opAddEntryArgs, classes)[0]);

//服务有两个参数的情况
EndpointReference targetEPR2 = new EndpointReference(
"http://127.0.0.1:8080/axis2/services/Try/");
options.setTo(targetEPR2);

// 构造调用serviceClient.invokeBlocking的三个参数
QName opAddEntry2 = new QName("http://xldz", "sayHello");
Object[] opAddEntryArgs2 = new Object[] { "Lijing",10};
Class[] classes2 = new Class[] { String.class };

System.out.println(serviceClient.invokeBlocking(opAddEntry2,
opAddEntryArgs2, classes2)[0]);
}
测试成功的方法:直接在myeclipse里面运行这个main函数,看看输出。

相关文档
最新文档