方式1:DII(Dynamic Invocation Interface)方式,这个方式企业一般不用,但是这是axis提供的方式
先去解压开的axis目录下去找axis-1_4\samples\userguide\example1里面有个客户端的例子:
其中:
String endpoint =
"http://nagoya.apache.org:5049/axis/services/echo";
说的是这个服务的地址,终端也就是服务端的地址。。。注意区别于 "http://nagoya.apache.org:5049/axis/services/echo?wsdl";这个是服务端描述文件的地址。。。
还有在这个例子中被注释的部分是可以不写的。。。。写了只是让读者看的明白点,不写也可以。。。
方式2:动态代理(Dynamic Proxy)
动态代理需要一个本地的接口作为代理
public interface ITestDynameicProxy extends Remote {
public String getMessage() throws RemoteException;
}//这就是一个代理哦,他只有这个类的架构,没有类的实现,正好与多态技术结合起来,这里这个接口实现了远程接口,也就是告诉虚拟机我是来实现远程对象的哦
public static void main(String[] args) throws Exception {
String wsdlUrl = "http://localhost:8080/axis/test/Test.jws?wsdl";
String nameSpaceUri = "http://soapinterop.org/";
String serviceName = "Test1Service";
String portName = "Test1";
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService(
new URL(wsdlUrl), new QName(nameSpaceUri,serviceName));
//下面是这个代理的使用
ITestDynameicProxy proxy = (ITestDynameicProxy)service.getPort(
new QName(nameSpaceUri,portName),ITestDynameicProxy.class);
System.out.println(proxy.getMessage());
}
通过输入wsdl地址,命名空间地址和服务名,用服务工厂创建出一个服务实例,再通过设置端口名得到一个服务类型的服务代理对象,通过该代理,就可以直接访问web服务了。
方式3:静态方式(Stubs)
按常规方式发布一个web service
得到wsdl文件
通过web页面直接另存为
通过Java2WSDL工具类生成
(java org.apache.axis.wsdl.Java2WSDL -o demo1.wsdl -l http://localhost:8080/axis/services/demo -n http://www.itcast.cn/ test.Demo)
//下面是重点,我们得到一个wsdl,那么怎么来使用它
利用WSDL2Java工具类生成客户端调用代码
(java org.apache.axis.wsdl.WSDL2Java demo.wsdl -p client)
用cmd进入axis所在的classes目录下,把demo.wsdl粘贴到那里,然后执行这个命令WSDL就会To Java了。。。-p client的意思是 生成之后存放到classes中的client下 -p即path
在生成的代码基础上,进行客户端的调用
public static void main(String[] args) throws ServiceException, RemoteException {
DemoServiceLocator demoService = new DemoServiceLocator();
Demo demo = demoService.getdemo();
System.out.println(demo.getMessage());
}
//其中DemoServiceLocator 是远程服务的本地类,他把该设置的参数都设置进去了,demoService.getdemo();直接得到了远程服务的接口代理。。。。这个思想和动态代理是一样的,然后就可以像操作本地的类一样操作它了哈
远程调用中的Stub是客户端的存根,他也相当于一个代理,他做些序列化和反序列化的工作,和一些接口(这里是代理的体现,因为是接口所以不干真正意义的事情)。。。。Steleton是服务器端的代理。。。他是骨架
分享到:
相关推荐
axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端axis 客户端
Axis客户端调用代码,使用WSDL2JAVA生成的客户端,可以直接进行调用
java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG
axis客户端调用WebService需要的最少包。包含axis.jar commons-discovery-0.2.jar commons-logging.jar jaxrpc.jar mail.jar saaj.jar wsdl4j.jar
axis1.4生成访问客户端代码
NULL 博文链接:https://huttoncs.iteye.com/blog/2091706
axis2客户端需要的jar包总结,包含axis2客户端搭建需要的全部jar包。
axis客户端生成set Axis_Lib=E:\DONGLING\document\JAR_LIB\axis-1_4\lib
java调用webservice axis 客户端 服务器端 包含jar包
axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...
cxf客户端调用axis服务端流程
非常好用的webservice for axis客户端详尽代码! 可以用以快速入门webservice的学习。
WebService Axis客户端调用接口需要用到的jar包
axis1.4生成客户端 axis1.4生成客户端 axis1.4生成客户端 axis1.4生成客户端
使用axis2生成客户端,调用服务端,测试服务端的接口所需要的最少的jar包。
NULL 博文链接:https://shenxueliang.iteye.com/blog/1734414
axis2客户端调用服务端,带用户身份认证
之前webservice客户端调用,使用RPC客戶端接口调用方法,但发现此种调用方式针对携参方式并不适用。最后经过多种方式测试选择了OMFactory......调用。经测试好用
axis根据服务端wsdl生成客户端工具。