使用axis编写WebService客户端(客户端自动更新)
http://blog.sina.com.cn/s/blog_49f485700100m0dr.html
编写Web Service服务器端以及客户端有许多种方法,前面的博文中也有提及到,但是,之前所有的方法,都是通过wsdl生成客户端,这样一来,当服务器端变化的时候,我们必须重新生成客户端。如何能够在程序运行的时候直接调用服务器端,而不需要客户端做任何修改呢?【sky在南京使用了这种方式,嘎嘎
我们可以通过axis插件(注意这里是版本1,由于1.2版本的目录结构发生了变化,发布的位置也不同了,目前还没有测试通过,待研究……)
【服务器端的编写】
内容如下:
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);
}
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class test {
}
通过
http://localhost:8080/axis/Server.jws?wsdl我们可以得到wsdl文件,通过eclipse自带的generate web service client工具,我们可以生成客户端,生成目录结构如下:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。