axis开发webService的简单实例

本人初次尝试用axis开发webService,刚开始写的这些记录可能存在一些小问题,过后如果对这方面有了新的掌握,会来更新今天的记录。

也希望路过各位不吝赐教,如果发现问题,可以提出来~~


1.首先需要下载axis1.4的jar包 : axis-bin-1_4.zip

2.解压后将其放在 %TOMCAT_HOME%/webapps/目录下

3.启动tomcat

4.在浏览器地址栏输入 http://localhost:8080/axis/ 有如下显示:

  wKiom1W7DqLiU7CrAAE3IrG0k18447.jpg

5.点击“Validation”,页面上会显示已有的jar包和缺少的jar包,根据提示下载jar包,使得没有err   和warning。

-----------这样我们就能确定jar包已经准备完毕

6.看网上说axis部署和发布WebService的方式有两种:JWS-及时发布,WSDD-定时发布。

  其中JWS方式就是编写一个 .java文件,将其后缀名改成 .jws后拷贝到%TOMCAT_HOME%/webapps/axis/   目录下,个人感觉这种方式怪怪的~ ~这里就直接说第二种方式了。

7.WSDD-定时发布

  首先用前面下载的axis-bin-1_4.zip里面的web.xml替换掉新建的项目里的web.xml。

  我写了一个很简单的.java文件:先把前面的jar到导入到项目中

  wKioL1W7FJ_wnRVZAADT5ZiSm-s289.jpg

8.在WEB-INF中创建一个叫 deploy-wsdd 的东西,这个东西大致就是用来部署前面写的ServiceTest类的

 wKiom1W7FZrQ4wP8AAG2l1ZpwtI721.jpg

9.部署好该项目,启动web服务器

10.打开控制台进入%TOMCAT_HOME%/webapps/项目/WEB-INF/

11.开始部署项目:

 java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient �Clhttp://localhost:8082/项目名称/services/类名 deploy.wsdd

wKioL1W7H0TQvliqAACY5DxdVWE933.jpg

这个服务就发布成功了,同时会在%TOMCAT_HOME%/webapps/项目/WEB-INF/下新建一个 

server-config.wsdd 文件。


12.这时就可以写一个客户端来访问服务了:

   

package com.client;

import java.net.URL;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

public class ClientTest {

public static void main(String[] args) throws Exception {

Service s = new Service();

Call call = (Call)s.createCall();

// 设置调用的方法名

call.setOperationName("sayHello");

//设置服务器的绝对路径

call.setTargetEndpointAddress(new URL("http://localhost:8080/axis2/services/ServiceTest?wsdl"));

// 调用方法

String val = (String) call.invoke(new Object[]{"kitty"});

System.out.println("val = "+val);

}

}


13.生成client的方法:

  打开控制台进入%TOMCAT_HOME%/webapps/项目/WEB-INF/:

java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -p client http://localhost:8082/axis/services/MessageService?wsdl

会在当前目录下生成一个client文件



14.使用刚刚生成的client来访问服务:

  此时需要在deploy.wsdd中加入这个一条声明,否则会报错:

wKiom1W-tsGxYI91AAC206W1oC0595.jpg

通过生成的client来访问服务的代码:

package com.client;


import java.net.URL;

import client.ServiceTestSoapBindingStub;

import client.User;


public class ClientTest {

public static void main(String[] args) throws Exception {


URL url = new URL("http://localhost:8080/axis2/services/ServiceTest");

ServiceTestSoapBindingStub sub = new ServiceTestSoapBindingStub(url, new Service());

User u = new User();

u.setName("迈克");

u.setAge("18");

String val = sub.helloUser(u);

System.out.println("val = "+val);

}

}


~~~~~待续,未完!

你可能感兴趣的:(小例子)