什么是webservice
基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求,从而实现远程调用。
为了符合WebService标准,所有你使用的数据类型都必须被转换为XSD类型(Xml Schema?? Definition)。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如 SOAP。
目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。
SOAP即简单对象访问协议(Simple Object Access Protocal),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。?
WSDL(WebServices Description Language)
Web Service描述语言WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。
UDDI(Universal Description, Discovery and Integration)
UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
?
XFire 为 Spring提供了方便易用的导出器XFireExporter,借助该导出器的支持,我们可以在Spring容器中将一个POJO导出为Web Service。
<!--引入XFire预配置信息--> <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" /> <!-- 定义访问的url--> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="urlMap"> <map> <entry key="/HelloWorldService.ws"> <ref bean="HelloWorldService" /> </entry> </map> </property> </bean> <!--使用XFire导出器--> <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true"> <!--引用xfire.xml中定义的工厂--> <property name="serviceFactory" ref="xfire.serviceFactory" /> <!--引用xfire.xml中的xfire实例--> <property name="xfire" ref="xfire" /> </bean> <bean id="HelloWorldService" parent="baseWebService"> <!--业务服务bean--> <property name="serviceBean" ref="HelloWorldBean" /> <!--业务服务bean的窄接口类--> <property name="serviceClass" value="webservice.HelloWorld" /> </bean>
程序如附件。
?
?