加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 23:09:04 所属栏目:安全 来源:网络整理
导读:使用axis编写WebService客户端(客户端自动更新) http://blog.sina.com.cn/s/blog_49f485700100m0dr.html (2010-06-30 08:31:36) 转载 ▼ 标签: 杂谈 分类: webservice,vba,vb,wml 编写Web Service服务器端以及客户端有许多种方法,前面的博文中也有提及到

使用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插件(注意这里是版本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:tomcatwebappsaxis目录下,并修改.java为.jws
(2)拷贝Server.class到D:tomcatwebappsaxisWEB-INFjwsClasses即可。
【客户端编写如下】
(一)客户端自动更新法
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工具,我们可以生成客户端,生成目录结构如下:

,我们客户端可以通过:
ServerProxy obj=new ServerProxy();
System.out.println(obj.display("hello"));的方式来调用。
【比较】
两种生成客户端的方法,
(1)第一种方法,当服务器端程序改变的时候,我们不需要修改客户端,客户端自动更新。每次连接的时候都调用最新的。而第二种方法,当服务器端程序改变的时候,我们需要重新生成客户端,否则无法正常运行。
(2)第一种方法使用比较麻烦,不直观。第二种方法使用简单,给用户呈现的仅仅是一个简单的类的实例化和函数的调用。

注:需要重启tomcat

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读