Web Service之Axis1.x入门二

     继上一篇《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对象。

猜你喜欢

转载自tankiy.iteye.com/blog/1028517