- 浏览: 7852437 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
4.3.2 WebService代理中心UDDI的实现<o:p></o:p>
当本地网站发出查询请求后,如上文提及的结构图所示,是先将请求发送到WebService的课件中心代理UDDI。其中,这个UDDI的作用是:存储各个网站的WebService信息地址,当有查询请求时,UDDI中心将会调用已经注册的WebService去搜索,当搜索完成时,会将搜索结果返回给用户。同时,用户可以通过uddi搜索有关的WebService。而在调用WebService的时候,有两种调用方式,一种是同步调用,另外一种是异步调用方式。
在使用同步调用方式的时候,调用WebService往往会经历较长的时延,或者是得不到响应(原因可能是Internet的连接问题,带宽问题,对方服务器过于繁忙等)。这样,有可能在客户端这边,就会处于不能响应的停顿状态,使得程序在等待返回结果时被“挂起”, 处理请求的线程会一直被占用,直到方法调用结束。当前线程会一直等待调用完成。线程无事可做,只是等待,直至听到查询的返回。这种情况对于用户来说是不可以接收的。
而异步调用方式则不同,它在当调用某个WebService而长期没有能得到回应时,会自动继续通过轮询查询机制,继续调用下一个WebService或者是其他资源。当某个WebService调用完成时,会发出一个回调信号,告诉调用者,调用已经完成。两种方式调用如图
<o:p></o:p>
当我在设计好.NET端的WebService后,在设计JSP客户端调用WebService时,发现了一个问题,那就是,在很多非.NET语言中,并没有象.NET中的dataset的数据类型。但经过我的摸索,发现由于WebService中传递的都是XML,因此可以将.NET端搜索出来的结果以XML的形式表达出来,而不是单纯的DATASET。于是我就想到可以将.NET端WebService返回的结果以字符串的形式输出,就可以很好地解决这个问题。因此,我选择用字符串的方式,将调用返回的XML以字符串的方式返回给Java的客户端。
4.4 Jsp客户端的设计
最后是Jsp客户端的设计。在这部分,我采用了前文提到的AXIS进行该部分的实现。 在实现前,必须要先产生客户端的STUB代理类,对XML进行反序列化,使得Java端能正 确识别解释XML。其中分为以下几个步骤:
1)安装好有关的软件:
除了要安装Axis外,为了对XML进行解释,同时要安装Xerces.Xerces也是Apache组织开发的免费开放代码的软件,目的是可以高效地进行对Java中涉及XML的部分进行解释(可在http://apache.org上下载)。
<o:p></o:p>
2) 使用WSDL2JAVA工具产生有关的stub代理类。
在AXIS中,有两套工具可以产生有关的代理类,分别为WSDL2Java和Java2WSDL。前者用于将已知的WSDL WEB描述文件中自动产生STUB代理类,后者是将已经存在的Java类自动产生相关的wsdl文件,用来将已有的程序转变为WebService。而在我的设计中,由于是由.net 端提供WebService,由JSP端作为客户端进行调用,因此它们的关系如下图所示:
<o:p></o:p>
从上面的图可以看到,要使用Java提供的WSDL2Java工具,对由.net产生的wsdl文
件进行解释。采用的方法如下:
先获得WEBSERVICE课件搜索代理UDDI(MSEARCH.ASM)的wsdl文件,输入:
http://localhost/msearch/msearch.asmx?wsdl<o:p></o:p>
之后获得的wsdl文件。
接着,就可以运用WSDL2Java工具了。<o:p></o:p>
c:\java org.apache.axis.wsdl.WSDL2Java –package msearch http://localhost/msearch/msearch.asmx?WSDL
运行完成后,会在msearch目录下自动产生stub的代理类。
4) 实现JSP的客户端
首先,要先导入已有的有关axis的类库及XML解释器
<%@ page language="java" import="msearch.*,javax.xml.parsers.*,org.w3c.dom.*,java.io.*,javax.xml.transform.*,org.xml.sax.*" %>
接着,初始化STUB代理类的实例,调用WebService:
msearch.MsearchLocator binding=new MsearchLocator();<o:p></o:p>
try {<o:p></o:p>
msearch.MsearchSoap port=binding.getmsearchSoap();<o:p></o:p>
String str=port.query(sql);//传入sql查询语句,返回的结果存放在字符串str当中,<o:p></o:p>
为了能在JSP客户端对调用返回的WebService中的XML解释,我使用了JAVA的DOM(XML文档对象模型)进行解释,因此,要初始化DOM对象。<o:p></o:p>
<o:p></o:p>
//初始化DOM对象 <o:p></o:p>
StringReader stringReader = new StringReader(str);<o:p></o:p>
InputSource inputSource = new InputSource(stringReader);<o:p></o:p>
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();<o:p></o:p>
DocumentBuilder builder=factory.newDocumentBuilder();<o:p></o:p>
Document doc=builder.parse(inputSource);<o:p></o:p>
doc.normalize();<o:p></o:p>
NodeList kejians =doc.getElementsByTagName("kejian");//提取每个kejian的结点集,<o:p></o:p>
for (int i=0;i<kejians.getLength();i++)<o:p></o:p>
{<o:p></o:p>
……<o:p></o:p>
提取每个结点的值,并予以显示<o:p></o:p>
<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
这样,就完成了对.NET WebService端的调用,并且正确的在JSP端予以显示。下面是有关部分的截图:
在输入查询条件后,提交后,返回的结果为:
<v:shapetype id="_x0000_t75"><v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
<o:p></o:p>
其中,由于我在设计的时候是在同一台机器上进行,所以在上面的结果中,localhost/kejiana表示的是该数据是来自kejiana的数据库的,而localhost/kejianb表示的是该数据是来自kejianb的数据库的。,(待续)
发表评论
-
很高兴能入住博客园
2005-01-15 19:24 1580很高兴申请能被批准,十分高兴。因为我主要搞WEB编程的 ... -
一些我翻译或原作的文章
2005-01-15 19:50 1285平时有空的话,比较喜欢看外国的.net站点,因此也翻译些好 ... -
asp.net 中对datagrid中的BUTTON应用CSS样式
2005-01-15 20:02 2446在asp.net中,如果要对某个按钮,TEXTBOX应用样式, ... -
asp.net 2.0中的ValidationGroup
2005-01-15 20:04 1495在asp.net 1.1中,对于验证类控件,在使用时,遇到有的 ... -
asp.net 2.0中的弹出对话框
2005-01-15 20:05 1312在asp.net 1.1中,要做1个弹出的对话框的话,一般是在 ... -
asp.net 2.0中设定默认焦点按钮
2005-01-15 20:05 1542在asp.net 1.1中,当要在page_load页面中,设 ... -
asp.net 2.0中使用sitemapDATAsource做页面导航
2005-01-15 20:07 1668在ASP.NET 2.0中,没有专门的页面导航控件,但可以使用 ... -
asp.net 2.0中TREEVIEW中动态增加结点
2005-01-15 20:08 1987在asp.net 2.0中,要动态从数据库中取出内容,动态增加 ... -
一个.net实现的ubb类
2005-01-15 20:09 1464using System; using System.Text ... -
ASP.NET 2.0中改变passwordrecovery发邮件时的信息
2005-01-15 20:11 1335在ASP.NET 2.0的登陆控件中(详细见我的文章,www. ... -
asp.net 2.0中的Cross PAGE REQUEST
2005-01-15 20:12 1283大家还记得吧,在ASP中,一个页面里,只要有一个Form表单, ... -
asp.net 2.0中一次性更新所有GRIDVIEW的记录 (翻译)
2005-01-15 20:13 1298在asp.net 2.0中,gridview控件是十分不错的控 ... -
ASP.NET 2.0中GRIDVIEW排序
2005-01-15 20:15 1926虽然是BETA 1的,但原理其实和。NET 1。1的差不多,下 ... -
即将有很多介绍WEBSERVICE互相整合的录象
2005-01-15 23:07 1172如何做到JAVA和。NET之间相互使用WEBSERVICE呢? ... -
asp.net 2.0的又一新特性
2005-01-16 20:49 1110ASP.NET 2.0真是多新特性呀,今天看资料才发现的。比如 ... -
上周听SMARTCLIENT讲座感受
2005-01-20 13:01 1343上周,在广州的SMARTCLIENT讲座上,终于见到了开心 ... -
BOXING AND UNBOXING FOR BEGINNER
2005-01-20 21:04 1345看了CODEPROJECT上篇讲BOXING的文章,觉得不错, ... -
基于WEBSEVRICE的课件搜索系统(一)
2005-01-28 22:47 1349临到年尾了,手上 ... -
基于WEBSERVICE的课件系统(三)
2005-01-28 22:58 1629在前面的<<基于WEBSERVICE的课件系统(1 ... -
基于WEBSERVICE的课件系统(四,后记)
2005-01-28 23:06 1127由于是直接从WORD上COPY到BLOG的,所以难免在排版 ...
相关推荐
旅游城市信息、天气预报、人民币汇率、手机号码归属地等信息查询
研究生毕业论文··· 基于WebService的工作流系统的研究与实现.nh
很好的掌上应用系统,是基于webservice,对于学习基于webservice的应用系统很有帮助
微软课程的WebService课件,用于教学与学习,是一到十一章的内容.
基于Webservice的信息查询系统.docx基于Webservice的信息查询系统.docx基于Webservice的信息查询系统.docx基于Webservice的信息查询系统.docx基于Webservice的信息查询系统.docx基于Webservice的信息查询系统.docx...
基于Webservice的信息查询系统.pdf基于Webservice的信息查询系统.pdf基于Webservice的信息查询系统.pdf基于Webservice的信息查询系统.pdf基于Webservice的信息查询系统.pdf基于Webservice的信息查询系统.pdf基于...
基于webservice的服务集成系统平台的设计与分析,丁小菲,王谦,在分布式应用环境中,一个业务流程可能涉及多个跨区域组合的WebService。为了有效支持这类业务流程的处理,本文在全面研究了webservice�
基于webservice的预约系统开发实例,里面包括代码,非常适合新手学习,但是还有很大的改进空间需要进一步的学习,这个例子仅供参考
基于webservice的图书管理系统简化版
这是自己写的一个基于WebService的权限管理系统,内附完整的解决方案,数据库文件,使用说明等。具有较高的的参考价值。如有什么好的建议可以给我留言。
本文通过分析智能家居系统和WebService 技术...性,提出了基于WebService 技术智能家居的模型和各模块的详细功能,并把WebService 栈 合理的分配到该系统各个部分,主要解决了各种智能设备不同操作系统之间通信的问题。
基于WebService的自助打印系统的设计与应用.docx基于WebService的自助打印系统的设计与应用.docx基于WebService的自助打印系统的设计与应用.docx基于WebService的自助打印系统的设计与应用.docx基于WebService的自助...
基于WebService的掌上视频监控系统;本系统仅供参考,请不要用于任何商业应用。如需源码,可以再联系。.
基于XML的SOAP_WebService分布式系统架构的研究和实现 基于XML的SOAP_WebService分布式系统架构的研究和实现 基于XML的SOAP_WebService分布式系统架构的研究和实现
基于WebService的分布式工作流系统.pdf 很详细的介绍
基于WebService的企业集成框架,介绍了webservice的基础知识,以及在企业中的应用。。。。
齐鲁软件设计大赛 基于webservice的掌上应用系统 源代码和技术文档 齐鲁软件设计大赛 基于webservice的掌上应用系统
基于webservice的设计题目,asp.net,适合初学者使用
基于WebService多层架构MIS系统的应用研究,引入web service技术,并借鉴MIS系统分层开发思想,提出一种基于webservice多层架构MIS系统应用方案