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

axis实现webservices分布式通信

发布时间:2020-12-16 23:18:36 所属栏目:安全 来源:网络整理
导读:分布式通信原理 ? 基本原理:stub和skeleton作为客户端和服务端传输的中介,stub和skeleton也是编码和解码的核心。 ? Wsdl ?: ? ? ?Webservices 描述文件; xml 定义的一套 Webservices 标准,描述服务端对应方法,参数以及返回值。可根据配置生成对应操作


分布式通信原理


?


基本原理:stub和skeleton作为客户端和服务端传输的中介,stub和skeleton也是编码和解码的核心。?


Wsdl?:

? ? ?Webservices描述文件;xml定义的一套Webservices标准,描述服务端对应方法,参数以及返回值。可根据配置生成对应操作类。

?

其他常见的webservices实现

?

Corba


相对与webservices.编程复杂,而传输快。


UDDI

?

简单来讲,uddi中主要还是利用注册中心。服务端通过注册中心发送数据给对应的client,顺便告知对应的client数据传输到注册中心的信息。这样来讲,有这样一个中介也避通过协议来直接传输庞大数据的缺点。

?

UDDIhttp://blog.sina.com.cn/s/blog_645f168c0100i9pj.html

?

axis配置

?

.配置webservice

?

1.axis引擎部署到tomcat中。


axis-1_4webappsaxis文件夹复制到 apache-tomcat-7.0.54-windows-x64apache-tomcat-7.0.54webapps下。


2.编辑对应的java类到axis中,并重新启动tomcat


新建jws


publicclass MyWebService{
publicString sayHello(String x){
return"helloaxis"+x;                
}
}


保存到axis根目录


3.访问对应http://localhost:8080/axis/MyWebService.jws


? ?Click to see the WSDL,看到MyWebService.jws对应的xml文件。相当于一个反向工程,通常情况下利用这个xml文件即可生成对应的java代码。


至此webservices环境配置完成



?

.验证调用

?

1.导入.jar

axis-1_4lib下的jar全部导入




2.client调用


publicstatic void main(String[] args){
//指明服务所在位置
Stringurl="http://localhost:8080/axis/MyWebService.jws?wsdl";
//axis对应服务
Serviceservice =new Service();
try{
//为Call设置服务的位置
Callcall=(Call)service.createCall();
call.setTargetEndpointAddress(newURL(url));
try{
Stringrs=(String) call.invoke("sayHello",new Object[] {"cfl"});
System.out.print(rs);
}catch (AxisFault e) {
//TODO Auto-generated catch block
e.printStackTrace();                        }
 
}catch(ServiceExceptione){
e.printStackTrace();
}catch (MalformedURLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}


调式日志

?

错误1.


Error compiling? 无法访问 java.lang.Object?

错误2.


java.lang.RuntimeException: No compiler found in your classpath!(you may need to add 'tools.jar')


以上两个错误,只需将jdk下的tools.jar以及dt.jar拷贝到axis的lib文件下即可。


警告3.


-Unable to find required classes (javax.activation.DataHandler andjavax.mail.internet.MimeMultipart).

Attachmentsupport is disabled.

?

将activation.jar、mail.jar导入到axis对应的lib即可,消除警告。

?

详情操作:http://blog.csdn.net/chastel/article/details/2084076

?


?

后序

? ? ? ? Webservices作为异构语言之间共享或者说是交流的一种分布式技术,主要涉及到soapwsdl等技术。wsdl是用来描述服务端调用对象的,soap则是用来传输数据的。另外以stubskeleton来作为中介。另外,从个人角度来讲分布式与远程调用还是不一样的,应该讲Webservices是远程调用的一种解决方案。文中是一个小的不能再小的demo,原理如此,实际运用还需要再做研究。


? ? ? ? axis的另外几种实现:http://www.cnblogs.com/mingzi/archive/2009/03/22/1419120.html

(编辑:李大同)

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

    推荐文章
      热点阅读