JAVA WebService 服务端与动态客户端
近来想做一个通用数据交换接口平台,所以想到使用JAVA来设计WebService,而且事先是不知道服务端在哪里的,也有可能是多个服务端的,所以客户端必须是可配置的,动态的,经过一番研究,现贴出代码,以供日后学习。
首先,确定使用XFire框架,框架的部署就不提了。
一、服务端:WebServiceTest
1、接口类
package service;
public inte易做图ce 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"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloWorldService</name>
<namespace>http://localhost:8090/WebServiceTest
</namespace>
<serviceClass>service.IHelloWorld</serviceClass>
<implementationClass>service.HelloWorldImpl
</implementationClass>
</service>
</beans>
二、客户端
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的专栏
补充:软件开发 , Java ,