继上一篇《Web Service之Axis1.x入门一》后,这是第二篇,上一篇主要讲的是即时发布这种方式,那么我们这一篇将会讲解定制发布的方式,而且以IDE的方式进行开发。
开发环境
1.MyEclipse 6.5
2.其他与上一篇的一样
开发自己的Web Service
服务端
1.在MyEclipse里面新建一个Web工程
2.拷贝解压后axis-1_4\webapps\axis\的所有目录,当然有的可以不用拷贝
3.黏贴第二步拷贝的数据到所建的工程的WebRoot目录下
4.新建一个服务提供类
package com.tankiy.service; /** * 服务提供类 * @author Tankiy * @since 2011 */ public class Hello { public String sayHello(String name) { return "Hello:" + name; } }
5.在/WebRoot/WEB-INF新建server-config.wsdd文件(这里可以用工具自动生成,由于本人较懒,就没有配)
添加的内容如下:
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" /> <transport name="http"> <requestFlow name="RequestFlow1"> <handler name="Handler1" type="URLMapper" /> <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler" /> </requestFlow> </transport> <service name="Hello" provider="java:RPC" use="literal"> <!-- *是该服务类提供所有的方法,也可以只写sayHello,但当该类存在多个方法时,那么只提供sayHello这个方法 --> <parameter name="allowedMethods" value="*" /> <parameter name="wsdlPortType" value="Hello" /> <parameter name="wsdlServicePort" value="Hello" /> <!-- 所提供的类 --> <parameter name="className" value="com.tankiy.service.Hello" /> <parameter name="wsdlServiceElement" value="Hello" /> </service> </deployment>
6.在tomcat里面发布,进行访问wsdl,地址http://localhost:8080/WebServices/services/Hello?wsdl
客户端
在昨天的客户端工程里面的Client类修改以下
public class Client public static void main(String[] args) { //目标地址,也就是wsdl的地址 String wsdlURL = "http://localhost:8080/WebServices/services/Hello?wsdl"; //只是这里修改下 //提供接口名 String serviceName = "sayHello"; //创建服务对象 Service service = new Service(); //创建调用对象 Call call = service.createCall(); //设置调用目标地址 call.setTargetEndpointAddress(wsdlURL); //设置操作名称 call.setOperationName(new QName(wsdlURL, serviceName)); //传递参数 String result = (String)call.invoke(new Object[]{"Tankiy"}); System.out.println(result); }
运行控制台,出现的结果Hello:Tankiy,恭喜你,客户端调用成功。
下一节将讲述传递JavaBean对象。