当前位置:编程学习 > JAVA >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,