使用axis编写WebService客户端(客户端自动更新)

使用axis编写WebService客户端(客户端自动更新)

http://blog.sina.com.cn/s/blog_49f485700100m0dr.html

(2010-06-30 08:31:36)
标签:

杂谈

分类: webservice,vba,vb,wml
编写Web Service服务器端以及客户端有许多种方法,前面的博文中也有提及到,但是,之前所有的方法,都是通过wsdl生成客户端,这样一来,当服务器端变化的时候,我们必须重新生成客户端。如何能够在程序运行的时候直接调用服务器端,而不需要客户端做任何修改呢?【sky在南京使用了这种方式,嘎嘎 使用axis编写WebService客户端(客户端自动更新),这方法太简单了】
我们可以通过axis插件(注意这里是版本1,由于1.2版本的目录结构发生了变化,发布的位置也不同了,目前还没有测试通过,待研究……)
【服务器端的编写】
新建一个Java Project,在src下新建一个类,叫做Server.java
内容如下:
public class Server 
{
public String display(String str)
{
System.out.println(str);
return  "hello in display";
}
}/ /在服务器端打印客户端传递过来的字符串,并在客户端返回hello in display
【配置信息】
( 1)我们需要将Server.java拷贝到D:\tomcat\webapps\axis目录下,并修改.java为.jws
(2)拷贝Server.class到D:\tomcat\webapps\axis\WEB-INF\jwsClasses即可。
【客户端编写如下】
(一)客户端自动更新法
package hope;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class test {
  public static void main(String[] args) throws Exception {   
    String endpointURL = " http://localhost:8080/axis/Server.jws";
    String str = "I am hope,this is my passed value";
  //创建调用对象
              Service service = new Service();
              Call call = (Call) service.createCall();             
              call.setTargetEndpointAddress ( new java.net.URL(endpointURL) );
              call.setOperationName( new QName(endpointURL, "display") );  //指定调用函数display             
              String s=(String)call.invoke( new Object[] {str} );// 调用display,并传递参数str
              System.out.println("s is :"+s); 
  }
}
(二)传统生成客户端方法
通过 http://localhost:8080/axis/Server.jws?wsdl我们可以得到wsdl文件,通过eclipse自带的generate web service client工具,我们可以生成客户端,生成目录结构如下:
使用axis编写WebService客户端(客户端自动更新),我们客户端可以通过:
ServerProxy obj=new ServerProxy();
System.out.println(obj.display("hello"));的方式来调用。
【比较】
两种生成客户端的方法,
(1)第一种方法,当服务器端程序改变的时候,我们不需要修改客户端,客户端自动更新。每次连接的时候都调用最新的。而第二种方法,当服务器端程序改变的时候,我们需要重新生成客户端,否则无法正常运行。
(2)第一种方法使用比较麻烦,不直观。第二种方法使用简单,给用户呈现的仅仅是一个简单的类的实例化和函数的调用。

注:需要重启tomcat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值