JAVA WebService 服务端与动态客户端

2014-11-24 03:02:54 · 作者: · 浏览: 0

近来想做一个通用数据交换接口平台,所以想到使用JAVA来设计WebService,而且事先是不知道服务端在哪里的,也有可能是多个服务端的,所以客户端必须是可配置的,动态的,经过一番研究,现贴出代码,以供日后学习。

首先,确定使用XFire框架,框架的部署就不提了。

一、服务端:WebServiceTest

1、接口类

package service;

public interface IHelloWorld {

//sayHello 方法声明了Web服务对外暴露的接口

//@return

public String sayHello(String ss,int nn);

public Object[] test(Object a,Object b);

}

2、实现类

package service;

public class HelloWorldImpl implements IHelloWorld {

public String sayHello(String ss,int nn) {

// TODO Auto-generated method stub

return "你输入的字符串是:"+ss+",整数是:"+nn;

}

}

3、xml文件

< xml version="1.0" encoding="UTF-8" >

HelloWorldService

http://localhost:8090/WebServiceTest

service.IHelloWorld

service.HelloWorldImpl

二、客户端

package service;

import java.net.MalformedURLException;

import java.net.URL;

import org.codehaus.xfire.client.Client;

public class DynamicClientTest {

public Object[] getWebService(String surl,String saction,Object[] objarr) throws MalformedURLException,Exception

{

Client client = new Client(new URL(surl));

Object[] results = client.invoke(saction, objarr);

return results;

}

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

DynamicClientTest web=new DynamicClientTest();

Object[] results=web.getWebService("http://localhost:8090/WebServiceTest/services/HelloWorldService wsdl", "sayHello", new Object[] { "黄京亮",100 });

System.out.println(results[0]);

}

}

三、测试

先运行服务端,然后再运行客户端,结果显示:你输入的字符串是:黄京亮,整数是:100

摘自:huangjl2000w的专栏