分布式通信原理


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2ZsMjAxMjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

Wsdl :

Webservices描写叙述文件。xml定义的一套Webservices标准,描写叙述服务端相应方法。參数以及返回值。

可依据配置生成相应操作类。

其它常见的webservices实现

Corba

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

UDDI

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

UDDI:http://blog.sina.com.cn/s/blog_645f168c0100i9pj.html

axis配置

一.配置webservice

1.将axis引擎部署到tomcat中。

axis-1_4\webapps\axis目录拷贝到
apache-tomcat-7.0.54-windows-x64\apache-tomcat-7.0.54\webapps下。

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文件。相当于一个反向project,通常情况下利用这个xml文件就可以生成相应的java代码。

至此webservices环境配置完毕

二.验证调用

1.导入.jar

\axis-1_4\lib下的jar所有导入

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2ZsMjAxMjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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作为异构语言之间共享或者说是交流的一种分布式技术,主要涉及到soap、wsdl等技术。

wsdl是用来描写叙述服务端调用对象的,soap则是用来数据传输的。

另外以stub和skeleton来作为中介。另外,从个人角度来讲分布式与远程调用还是不一样的,应该讲Webservices是远程调用的一种解决方式。

文中是一个小的不能再小的demo。原理如此。实际运用还须要再做研究。

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

最新文章

  1. Cannot attach the file ‘{0}' as database '{1}'
  2. python之装饰器
  3. UITextView限制输入文字
  4. markdown语法学习笔记
  5. [Appium] 使用Appium过程中遇到的各种坑
  6. spring bean实例化方式
  7. 【spring 5】AOP:spring中对于AOP的的实现
  8. Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx
  9. Replication in Kafka
  10. [转]如何下载tizen源码(图文教程)?
  11. hdu 1715 大菲波数(高精度数)
  12. HTML Imports
  13. 设置tableWidget->verticalScrollBar()的属性
  14. Oracle EBS-SQL (WIP-15):检查车间任务物料未发数量与现有量对照.sql
  15. [转]组合数取模 Lucas定理
  16. C# 登录 存Session ,cookie并且验证只能一个人登录以及清session并且Cache
  17. 激活效能,CODING 敏捷研发模块上线
  18. Collections of Zujin Zhang's Published works
  19. 【CF1141E】Superhero Battle
  20. RESTful restful api Representational State Transfer

热门文章

  1. flask 初始
  2. 通过UDP建立TCP连接
  3. 小小的IP,大大的耦合,你痛过吗?
  4. Java——Spring注解
  5. 设计模式——“signleton”
  6. JS高级——Object.prototype成员
  7. MyBatis入门3_mapper.xml优化(parameterType简写_NameSpace简写_sql片段_特殊字符处理)_动态SQL
  8. HDU_1028_Ignatius and the Princess III_(母函数,dp)
  9. Android之Fragment的优点和作用
  10. jquery 对 table 的操作