Web Service整合

原创 2015年07月07日 13:21:11

一、 各大WebService框架区别

1.xFire

(1)、支持将Web服务绑定到POJO、xmlbeans、JAXB1.1、JAXB2.0和Castor 
(2)、支持基于HTTP、JMS、XMPP等多种协议访问Web服务; 
(3)、容易上手,可以方便快速地从pojo发布服务; 
(4)、对Spring、Pico、Plexus等项目的支持; 
(5)、服务器响应时间快,是Axis的2-6倍;

(6)、依赖jar包较少(实现基本功能所需jar包:6个)

(7)、配置简单,便于开发

 

2.CXF

(1)、CXF相对于xFire支持ESB(企业服务总线),该项目中不会使用
(2)、CXF=xFire+Celtix,Celtix及ESB的框架,所以CXF包含xFire中的大部分功能及优点; 
(3)、CXF配置采用Annotation注解方式配置服务器端,开发时可减少繁琐过程; 
(4)、CXF是基于Spring的思想开发的,对Spring有较好的支持,整合方便; 
(5)、.CXF支持 WS-Addressing,WS-Policy, WS-RM,WS-Security和WS-I BasicProfile;

(6)、依赖jar包相对于xFire较多(实现基本功能所需jar包:11个);

(7)、CXF更注重开发人员的工效和嵌入能力;

 

3.Axis2

(1)、Axis2是从Axis1.x系列发展而来,从底层全部重新实现,使用了新的扩展性更好模块架构;
(2)、支持HTTP,SMTP,JMS,TCP传输协议; 
(3)、 Axis2支持多语言-除了Java,他还支持C/C++版本,对客户端的开发有很好的支持,可以生成Java和其他语言版WebService客户端和服务端代码; 
(4)、Axis2是一个重量级WebService的框架依赖jar包非常多(实现总线所需jar包:15个,adb方式调用所需jar包:12个);

 

二、 使用及配置方式

1、  xFire使用方式及配置(服务端:基本使用)

① 创建web项目,引入实现基本功能所需的6jar包,包括


② 创建所要暴露的接口和对应的实现类(编写所要提供的服务)

③ web.xml添加中配置如下信息

<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>

④ src目录下创建“META-INF”文件夹及子文件夹“xfire”,在子文件夹中创建名为“services.xml”的配置文件,其内容如下:

<?xml version="1.0" encoding="utf-8"?>

<beansxmlns="http://xfire.codehaus.org/config/1.0">

<service>

<!-- 服务名称 -->

<name>HelloWorldService</name>

<!-- 实现类的命名空间 --> 

<namespace>http://www.server.com/xfire/HelloWorldService</namespace>

<!-- 实现类所指的包和类 -->

<serviceClass>com.server.xfire.HelloWorldService</serviceClass>

<!-- 对应接口的实现 --> 

<implementationClass>com.server.xfire.impl.HelloWorldServiceImpl</implementationClass>

</service>

</beans>

 

⑤ 启动tomcat

⑥ 通过链接访问xml文件

 

 

 

 

2、  xFire使用方式及配置(客户端)

① 创建普通java项目,引入实现基本功能所需的6jar包,包括(和服务端的jar包有所不同)


② 创建服务端对应的接口类(仅接口,必须和服务器端一致)

③ 创建main方法进行测试,其内容如下:

package com.test.xfire;

import java.net.MalformedURLException;

import org.codehaus.xfire.client.XFireProxyFactory;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import com.client.xfire.HelloWorldService;

public class Client {

         public static voidmain(String[] args) {

        //根据服务器相同的接口创建ServiceModel

                   ServiceserviceModel = new ObjectServiceFactory().create(HelloWorldService.class);

                   //声明接口类型对象

                   HelloWorldServiceservice = null;

                   //web服务对应的url地址

                   String url= "http://localhost:8080/webService_server/services/HelloWorldService";

                   try {

                            service= (HelloWorldService)new XFireProxyFactory().create(serviceModel,url);

                   } catch (MalformedURLExceptione) {

                            e.printStackTrace();

                   }

                   //调用WebService方法

                   if(service!=null){

                            Stringmessage = service.sayHello("刘鹏飞");

                            System.out.println(message);

                   }

         }

}

 

 

 

3、  xFire整合Spring(服务端)

① 创建web项目,引入所依赖的jar包,包括:


② 创建所要暴露的接口和对应的实现类(编写所要提供的服务)

③  web.xml添加中配置如下信息

<context-param>

<param-name>contextConfigLocation</param-name>

<!-- 可以再这里加入xfire.xml也可以在applicationContext.xml中引入 -->

<param-value>classpath:beans.xml</param-value>

</context-param>

    <!-- Spring framework-->

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

<!-- Xfire Servlet -->

<servlet>

<servlet-name>XFireServlet</servlet-name>

<!-- 不整合时使用org.codehaus.xfire.transport.http.XFireConfigurableServlet-->

        <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>XFireServlet</servlet-name>

<url-pattern>/services/*</url-pattern>

</servlet-mapping>

④ src目录下创建spring配置文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:jaxws="http://cxf.apache.org/jaxws"

         xsi:schemaLocation="

http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">

                   <!-- 引入xfire.xml -->

                   <importresource="classpath:org/codehaus/xfire/spring/xfire.xml" />

                   <!--Service实现类 -->

                   <beanid="hello" class="com.springxfire.impl.HelloWorldImpl"/>

                   <!-- 这里的name属性并不是调用时的Service名字;调用时要用类名,不知道为什么 -->

                   <beanname="helloService"class="org.codehaus.xfire.spring.ServiceBean">

                            <propertyname="serviceBean" ref="hello" />                          <!-- Service实现类 -->

                            <propertyname="serviceClass"value="com.springxfire.inter.HelloWorld" />       <!-- Service接口 -->

                            <propertyname="inHandlers">

                                     <list>

                                               <refbean="addressingHandler" />

                                     </list>

                            </property>

                   </bean>

 

                   <beanid="addressingHandler"class="org.codehaus.xfire.addressing.AddressingInHandler" />

 

         </beans>

⑤ 服务器端创建完成,启动tomcat,输入链接测试

 

 

4、  CFX整合Spring(服务器端,基本使用)

① 创建web项目,引入CFX依赖11个jar包


② 创建所要暴露的接口和对应的实现类(编写所要提供的服务)

③ 在WEB-INF目录下创建spring配置文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:jaxws="http://cxf.apache.org/jaxws"

         xsi:schemaLocation="

http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd

http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

         <importresource="classpath:META-INF/cxf/cxf.xml" />

         <importresource="classpath:META-INF/cxf/cxf-extension-soap.xml" />

         <importresource="classpath:META-INF/cxf/cxf-servlet.xml" />

         <beanid="service1" class="com.springcxf.impl.HelloWorldImpl"></bean>

         <jaxws:endpointid="hello" implementor="#service1" address="/HelloWorldService"/>

</beans>

 

④ 在web.xml文件中添加如下内容:

<listener> 

       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 

    </listener> 

   <context-param> 

       <param-name>contextConfigLocation</param-name> 

       <param-value>/WEB-INF/beans.xml</param-value> 

   </context-param> 

     <servlet> 

       <servlet-name>HelloWorldService</servlet-name> 

        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> 

       <load-on-startup>1</load-on-startup> 

    </servlet> 

   <servlet-mapping> 

       <servlet-name>HelloWorldService</servlet-name> 

       <url-pattern>/services/*</url-pattern> 

</servlet-mapping> 

 

⑤ 服务器端创建完成,启动tomcat,输入链接测试

 

 

5、  Axis2暂未做研究

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

]Axis2与Eclipse整合开发Web Service:WSDL逆向生成服务端

一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端。看过一本SOA的书中说,如果实现防止不同语言一些特定的数据类型的不兼容性,推荐先定义WSDL接口,包括一输入输出参数、...

Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端

一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端。看过一本SOA的书中说,如果实现防止不同语言一些特定的数据类型的不兼容性,推荐先定义WSDL接口,包括一输入输出参数、...

[图解教程] Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子

系统功能: 开发一个计算器服务CalculateService,这个服务包含加(plus)、减(minus)、乘(multiply)、除(divide)的操作。开发前准备:1、安装Eclipse-je...

CXF [web service]整合spring 总结

大概花费了一周的时间来了解web service 这个东东,从开始的axis2 ,到xFire ,到最后选择了CXF,一切的资料都是来自于网络资料,由于要和spring整合,因此最后选择了CXF, ...

Spring boot 整合CXF开发web service

前言 说起web service最近几年restful大行其道,大有取代传统soap web service的趋势,但是一些特有或相对老旧的系统依然使用了传统的soap web service,例如...
  • hj7jay
  • hj7jay
  • 2016-04-12 09:25
  • 15173

10.Web Service Spring整合CXF之添加拦截器 完结

今天主要来介绍一下如何在Spring整合CXF环境下,添加拦截器;这里我们给下官方的参考文档:http://cxf.apache.org/docs/jax-ws-configuration.html结...

CXF-09: CXF 与 Spring 的整合 之 暴露 Web Service 接口

在传统Spring项目基础上增加 Web Service 的步骤(SSH 已经配置过,SSM 未配过): 1 . 复制 CXF 的 jar 包(最核心的6个), jar 包地址 htt...

[图解教程] Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子

个人验证成功:使用的是 Eclipse Java EE IDE for Web Developers. Version: Indigo Service Release 2 Build id:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)