在开发本项目时,我们使用的相关技术主要有以下几个方面。
1Web服务的开发技术
1.1 Java平台上生成Web服务
利用XFire+Tomcat实现JAVA平台的POJO发布为Web Service,Tomcat是WEB容器,用于处理SOAP消息中的HTTP部分,XFire是SOAP引擎,用于在服务端处理SOAP消息。具体过程如下所示:
一、首先建立WEB.XML文件的配置映射,当访问services时,调用XFireConfigurableServlet来处理:
…… <web-app>
<servlet> <servlet-name>XFireServlet</servlet-name> <display-name>XFireServlet</display-name> <servlet-class> org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class> </servlet>
<servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
|
二、XFireConfigurableServlet会自动查找classes下的META-INF\xfire\services.xml配置文件,在这个XML配置文件中,把要提供服务类或接口进行绑定,设置其名称、命名空间、需要绑定的类:
<beansxmlns=" http://xfire.codehaus.org/config/1.0"> <service> <name>HelloWorldService</name> <namespace>http://202.118.22.171/ HelloWorldService </namespace> <serviceClass>cactus. HelloWorldService</serviceClass> </service> </beans>
|
三、把需要服务的类或接口编写出来,我的示例是cactus. HelloWorldService类:
packagecactus;
publicclassHelloWorldService {
publicvoidsayHelloWorld(){ System.out.println(“Hello World!”); } }
|
四、把XFire及其需要的包都拷过来。下载XFire后,解压后有个lib目录,把里面全部的包都拷过来下载的XFire包也拷过来
五、启动TOMCAT进行服务器端的测试:
AvailableServices:
HelloWorldService [wsdl] GeneratedbyXFire(http://xfire.codehaus.org)
|
1.2 .Net平台上生成Web服务
利用IIS+C#+.net实现.net平台的Web服务发布,IIS是WEB容器,用于处理SOAP消息中的HTTP部分,.net自带的API用于处理SOAP消息。
例如发布一个Hello World的Web服务
在.net平台下建立一个Web服务
写下面代码:
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
|
1.3 P平台上生成Web服务HP
利用Apache+nusoap实现PHP平台的Web服务发布,Apache是WEB容器,用于处理SOAP消息中的HTTP部分,nusoap负责生成WSDL处理SOAP消息。
下面用php+nusoap发布一个两个数相加的Web服务
<?php //server.php
//导入nusoap.php
require("nusoap/lib/nusoap.php");
//声明一个soap_server对象
$server=new soap_server();
//配置WSDL
$server->configureWSDL('HelloWorld','urn:HelloWorld');
//定义目标命名空间
$server->wsdl->schemaTargetNamespace='urn:HelloWorld';
//注册Adder
$server->register
(
//操作名
"Adder",
//参数类型
array('format'=>'xsd:int','fuck'=>'xsd:int'),
//返回值类型
array('return'=>'xsd:int'),
'urn:HelloWorld',
'urn:HelloWorld#Adder'
);
function Adder($a,$b)
{
return ($a+$b);
} $HTTP_RAW_POST_DATA=isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:'';
$server->service($HTTP_RAW_POST_DATA);
?>
|
而相应WSDL位置为http://localhost/server.php?wsdl
2.1 Web服务的解析技术
WSDL4J 提供可以用于解析现有 WSDL 文档或通过编程创建新 WSDL 文档的标准 Java 接口。WSDL4J 是定位在 IBM developerWorks 网站上的一个开放源码项目。大多数 WSDL4J 类表示能够在 WSDL 文档中出现的元素。例如,由 Definition 类表示 <definition> 元素,而由 Service 类表示 <service> 元素。也有使 WSDL 文档变得易于读取和解析以及将 WSDL4J 对象的内容作为 XML 文档写出的实用类。
2.2消息的生成技术 SOAP
SAAJ(SOAP with Attachments API for Java)是在松散耦合软件系统中利用SOAP协议实现的基于XML消息传递的API规范。顾名思义,SAAJ支持带附件的SOAP消息。SAAJ提供了一个能方便地构建和读取SOAP信息的库,这个库还允许你通过网络接收和发送SOAP信息。SAAJ API为我们提供了一个高层次的SOAP消息封装接口,如:信封接口:javax.xml.soap.SOAPEnvelope,并提供了操作getHeader(),该方法返回一个消息头:javax.xml.soap.SOAPHeader。所以,通过调用SAAJ的接口函数,我们就可以对SOAP消息进行操作。
利用JDOM技术,根据从WSDL中解析出的返回信息来提取SOAP中的返回值,最终呈现给用户
2.3基于Lucene的Web服务搜索
基于搜索效率考虑,我们使用了开源索引数据库引擎Lucene。
通过对Lucene源码包的分析,我们可以初步认识到Lucene的核心类包主要有3个:
l org.apache.lucene.analysis
l org.apache.lucene.index
l org.apache.lucene.search
其中org.apache.lucene.analysis 主要用于切分词,切分词的工作由Analyzer的扩展类来
实现,Lucene自带了StandardAnalyzer类,我们可以参照该写出自己的切词分析器类,如中文分析器等。
org.apache.lucene.index主要提供库的读写接口,通过该包可以创建库、添加删除记录及读取记录等。
org.apache.lucene.search主要提供了检索接口,通过该包,我们可以输入条件,得到查询结果集,与org.apache.lucene.queryParser包配合还可以自定义的查询规则,像google一样支持查询条件间的与、或、非、属于等复合查询。
本项目是基于J2EE WEB技术来开发服务器端程序,以及基于浏览器访问的客户端页面。主要用到了J2EE的Servlet API来处理从浏览器或移动设备中的HTTP请求,用到的Servlet容器为Apache的TOMCAT5.5。使用JSP来构建基于浏览器访问的客户端页面.使用JDBC来处理与MySql的数据库连接。
利用SUN公司的J2ME技术来开发基于手机的客户端应用,开发这种程序可以简化的分解成三个层面:
1 J2ME的客户端(MIDlet程序)
2 服务器端的servlet(servlet程序)
3 数据库(MySql等)
在本项目里,服务器的servlet有两种,一种是对应来自浏览器访问的HTTP请求,一种是对应来自手机的HTTP请求,这种Servlet是我们在开发手机客户端时在服务器端需要另外加的代码,其它代码可以直接调用服务器端的原来代码,如数据库连接验证用户的登录信息是否正确等等。所以本项目的手机客户端开发主要是集中在MIDlet程序的开发。
分享到:
相关推荐
Web服务搜索与执行引擎的核心是Web服务描述语言(WSDL)和简单对象访问协议(SOAP)。WSDL是一种基于XML的规范,用于定义Web服务的接口,描述服务提供的操作、输入和输出消息,以及服务的位置和协议。由于其基于XML...
【Web程序设计——ASP.NET网站开发】 在现代互联网技术领域,Web程序设计是构建动态、交互式网站的关键技术。ASP.NET作为微软公司推出的强大Web应用框架,为开发者提供了高效、安全且易于使用的工具来创建高性能的...
第二部分 Web应用 第4章 Web应用程序思想 93 4.1 HTTP和“会话” 93 4.1.1 保持状态 93 4.1.2 用cookies进行“会话”ID传输 95 4.1.3 URL手工改写 95 4.1.4 动态路径 96 4.1.5 DNS技巧 98 4.1.6 实际应用中的折衷...
在本章中,我们将深入探讨Web开发中的一个关键概念——HTTP服务。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。它是基于请求与响应模型的、...
二、数据库连接与管理 在电子商务系统中,数据库通常选择MySQL,因为其高效、稳定且与PHP有良好的兼容性。PHP通过mysqli或PDO扩展与MySQL进行交互,实现数据的查询、插入、更新和删除操作。例如,使用mysqli_connect...
标题:"Web爬虫一个WEB爬虫的实例——JAVA." 描述:"web技术爬虫可用很犀利" 标签:"爬虫技术" 部分代码内容分析与详细解释: 该Java代码展示了一个简单的Web爬虫(SearchCrawler)类,用于在指定的网站上搜索...
书中会详细介绍这些引擎的工作原理,包括盒模型、流体布局、响应式设计等相关内容。 JavaScript的执行是WebKit中的另一个重要环节。WebKit内置了高性能的JavaScript引擎,如V8(Chrome中)或JavaScriptCore(Safari...
《迅龙中文Web搜索引擎——基于.NET的开源实现详解》 迅龙中文Web搜索引擎是一款由C#编程语言编写的开源搜索引擎程序,它为开发者提供了一种高效、易用的方式来实现中文网页的索引与检索功能。这款软件的核心在于其...
【Java远程通信技术——Axis实战】 在互联网时代,网络通信技术是软件开发不可或缺的一部分。TCP/IP和UDP/IP作为底层传输协议,承载了大部分网络数据,而HTTP协议则在此基础上提供了超文本传输。Java中,有多种远程...
### JSP核心技术——JSP引擎内幕 #### 一、JSP引擎的工作原理 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,它允许开发者将动态内容嵌入到HTML网页中。JSP的核心功能是通过JSP引擎来实现的。JSP...
这个毕业设计项目——“ASP一个小型搜索引擎的设计与实现”是基于ASP技术,旨在为初学者提供一个实践搜索引擎基本原理和开发过程的机会。在这个项目中,我们将探讨以下几个关键知识点: 1. **ASP基础**:ASP是Web...
【基于Java的全文索引检索引擎——Lucene】 Lucene是一个用Java编写的开源全文检索引擎库,由Doug Cutting创建并贡献给Apache基金会,成为Jakarta项目的一部分,后来成为Apache软件基金会下的顶级项目。它的主要...
总之,淘特搜索引擎共享版的JSP源码为我们提供了一个实践和学习的平台,通过解析源码,不仅能掌握JSP技术,还能深入了解搜索引擎的运作机制,这对于任何想从事Web开发或搜索引擎开发的开发者来说都是宝贵的资源。
【关于服务器——安装配置Tornado】 Tornado 是一个开源的 Python Web 框架和异步网络库,最初由 FriendFeed 开发并随后被 Facebook 收购。它以其高性能、可扩展性和支持非阻塞 I/O 而受到广泛关注,尤其在处理大量...
综上所述,【JSP源码——WebSpider蓝蜘蛛网页抓取 v5.1_webspider.zip】是一个实用的开源项目,结合了JSP编程语言和网页抓取技术,适合学习和开发相关应用。通过研究和实践,开发者可以提升自己的技能,同时解决实际...
### Ajax技术简介与应用 #### 一、Ajax技术概述 **Asynchronous JavaScript and XML (AJAX)** 是一种用于创建快速动态网页的技术。它允许在不重新加载整个网页的情况下,通过后台加载数据并更新部分网页内容。AJAX...
《Go Web编程实战派从入门到精通》是一本专注于Go语言在Web开发领域的专著,其开源的随书源码库名为"Go语言-Web-goWebActualCombat",压缩包内的主要内容是goWebActualCombat-master目录,这代表了一个完整的Go语言...