关于webservice的起源,不想对说,想了解的可以到网上查询,我是2009年做一个分布式网络资源检索系统,接触的webService.废话也不多说了,简单的说webservice 是一个web服务接口,た描述了一组可以在网络上通过标准的XML消息传递访问的操作。它使用基于xml语言的协议来描述要执行的操作或者要与另一个web服务交换的数据。在面向服务的体型结构(Service-Oriented Architecture,SOA)中,一组以这种方式交互的Web服务定义特定的Web服务应用程序。
软件行业最终会接受这样的事实:跨多个操作系统,编程语言和硬件平台集成软件应用程序不可能由任何一种专门的环境来解。传统上,这个问题一种し一个紧藕和问题,调用远程网络的应用程序通过自己发出的函数调用へ请求参数与远程网络紧密的联系在一起。在Web服务出现之前,在大多数系统上采用的是固定的接口,但对与不断变化的环境或需求,这种做法就不灵活了。
Webservice能够做什么:
1:让任何平台上的任意语言编写的服务进行交互 2:将应用程序功能的概念化成任务,从而形成面向任务的开发へ工作流。这使得更抽象的软件能够为工作在业务层面具有较少软件分析技术的用户所用 3:松耦合 4:是现有的应用适用与不断变化的业务条件へ客户需求。 5:提供服务接口,不用改变原来的应用程序。 6:可靠性、责任性、安全性 (以上可以不用看,呵呵 不能误人子弟)
Webserice工作原理
web service 是通过一系列标准和协议来保证程序之间的动态连接,其中最基本的包括:SOAP、WSDL、UDDL
这四种以后有机会在细说。
下面说怎么构建webservice 其实很简单 在这我们用xFire 来构建 xFire是java web 服务的引擎。
在这里我们用MyEclipse下来构建WebService ,这样就简单了。
1:建立webService项目,添加xFire庫 2:配置web.xml 3:在项目中建立一个WebService,创建相关接口和实现类 4:配置service.xml 5:测试web服务是否发布成功 6:编写客户端程序访问创建的Webservice
下面写一个webService
首先创建一个名为Web Service Project的项目,然后根据IDE提示一步一步的完成,IDE就自动帮你把大部分的工作完成了。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
在这个web.xml文件中定义了一个 XfireServlet,它负责提供Web Services,并提供
每个Web Service的WSDL。如果你发布了一个Web Service,比如叫BookService,你
就可以通过网址http://<server_url[:port]>/<context>/ services/BookService来访问这
个Web Service,并且通过网址http://<server_url[:port]>/<context>/
services/BookService?WSDL得到这个Web Service的WSDL信息。
在源文件夹WEB-INF/src下新建一个package:
com.googlepages.smallnest.facet,在这个package下新建一个接口HelloService,这个接
口定义了只定义了一个hello方法。这个方法要求传入一个字符串的参数,记过处理后返回
另一个字符串,非常的简单。
package com.googlepages.smallnest.facet; public interface HelloService { public String hello(String name); }
下面你的任务就是要建立一个实现类HelloServiceImpl,实现这个接口。
package com.googlepages.smallnest.facet; public class HelloServiceImpl implements HelloService { public String hello(String name){ if (null == name) { return "Hello Guest"; } return "Hello " + name; } }
到目前为止你所做的开发和平常的java开发没有什么区别,都是普普通通的接口和
java类。最后一步就是要编写一个services.xml文件,这个文件定义了要发布的web
services。
新建一个xml文件,保存为services.xml,保存在WEB-INF/src/META-INF/xfire文件夹
下,eclipse会自动将它复制到WEB-INF/classes/META-INF/xfire下。XFireServlet会读取并解
析这个文件。
services.xml文件的内容如下:
<beans> <service xmlns="http://xfire.codehaus.org/config/1.0"> <name>HelloService</name> <namespace>http://smallnest.googlepages.com/HelloService</namespace> <serviceClass>com.googlepages.smallnest.facet.HelloService</serviceClass> <implementationClass>com.googlepages.smallnest.facet.HelloServiceImpl</implementationCla ss> </service><beans>
这个文件定义了一个Web Service:helloService,并定义serviceClass和
implementationClass,分别是 helloService的接口和实现类。