`
dqm926
  • 浏览: 28091 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring+CXF发布webservice

阅读更多

 关于webservice的开发有很多种方法,其中我认为最简单的就是用CXF。

CXF是apache的一个项目,与spring的整合也非常方便。

 

下面我就Spring+CXF开发webservice写个helloworld的例子:(项目放在附件中)

1、准备环境、开发工具:

jdk以及tomcat这边就不说了

(1)、cxf的下载:去apache的官网找到:apache-cxf-2.7.3,下载下来

(2)、将上面的文件夹放在一个路径下,配置环境变量:EXF_HOME:对应的路径、Path:在后面加",%EXF_HOME%/bin"(与jdk的配置一样),在cmd下输入wsdl2java,检测是否配好。(这边配环境主要是为了生成客户端用)

(3)、找出开发服务端所需的jar包,在apache-cxf-2.7.3下面的lib都有,但是里面的不是都需要,下图中是所需要的jar:

2、开发:

我用的是myeclipes+tomcat6

(1)、创建一个webproject

(2)、将上面准备的jar全部引入到工程中

(3)、配置环境:

添加web.xml配置:

    <listener>
        <!-- spring监听的配置 -->
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:ApplicationContext.xml
        </param-value>
    </context-param>
     
      <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>
            org.apache.cxf.transport.servlet.CXFServlet
          </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <!-- 拦截service/..的URL,作为webservice处理 -->
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

在src下面加入spring的配置(ApplicationContext.xml):

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="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/beans 
                         http://www.springframework.org/schema/beans/spring-beans.xsd
                         http://cxf.apache.org/jaxws   http://cxf.apache.org/schemas/jaxws.xsd">
   
        <!-- 引入以下3个关于CXF的资源文件,这三个文件在cxf.jar中 -->
        <import resource="classpath:META-INF/cxf/cxf.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />   
    </beans>

(4)、进行代码开发:(我用的是jdk自带的javax注解,注解的详细解释大家可以去看相关api,这边不做细说)

因为webservice都是通过接口对外发布的,所以一个webservice必须要有接口:

package com.dqm.demo.service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

/**
 * webservice接口
 *
 * @author dongqm
 * @since 2013-2-26
 * @lastChange $Author$
 * @lastChangeDate $Date$
 * @version $Rev$
 */
@WebService
public interface IHelloWorld {
    @WebMethod(operationName = "SayHelloWorld")
    @WebResult(name = "result")
    public String sayHelloWorld(@WebParam(name="name") String name);
}

 

接口实现类:

package com.dqm.demo.service;

/**
 * webservice接口实现类
 *
 * @author dongqm
 * @since 2013-2-26
 * @lastChange $Author$
 * @lastChangeDate $Date$
 * @version $Rev$
 */
public class HelloWorld implements IHelloWorld {

 /*
  * (non-Javadoc)
  * @see com.dqm.demo.IHelloWorld#sayHelloWorld(String name)
  */
 @Override
 public String sayHelloWorld(String name) {
     return name + "Say:Hello World!";
 }

}

(4)、通过spring配置的方式对外发布:

在spring的配置文件(ApplicationContext.xml)中加入配置:

    <jaxws:endpoint address="/Hello" implementorClass="com.dqm.demo.service.IHelloWorld">
        <jaxws:implementor>
            <bean class="com.dqm.demo.service.HelloWorld"/>
        </jaxws:implementor>
     </jaxws:endpoint>

 (5)、代码开发完成,现在部署在tomcat上,运行tomcat:

输入URL:http://ip地址:tomcat端口/项目名称/services/Hello?wsdl
将会看到生成的wsdl文件,说明webservice发布成功。

3、webservice发布完成了,现在我们可以运用apache-cxf-2.7.3通过wsdl生成客户端:

在cmd下输入:"wsdl2java -p 生成java对象的包名 -d 生成文件放的路径 -client wsdl的URL",将wsdl文件生成java文件(即客户端代码)。

将生成的文件直接发在java工程下,就可以调用上面写的webservice了

我们可以直接将生成的文件打包成jar,然后导入到客户端项目中,就可以直接调用了,这样也省掉了写怎样调用webservice的代码的,方便吧,但是,如果是项目的最终版本,url最好用域名,如果用ip的话,一旦变动机器就要重新生成客户端的jar包了

 

  • 大小: 52.5 KB
分享到:
评论

相关推荐

    Spring+CXF 发布WebService服务

    本文将深入探讨如何使用Spring和CXF来发布WebService服务。 首先,Spring是一个开源的Java平台,它提供了全面的编程和配置模型,用于简化企业级应用的开发。Spring框架的核心特性包括依赖注入、面向切面编程(AOP)...

    使用Eclipse+Maven+Spring+CXF构建的WebService服务

    Web项目中基于Maven与Spring整合的WebService之cxf的实现⬇️ 详情请参考如下链接: https://locqi.github.io/locqi.com/2018/09/05/Eclipse+Maven+Spring+CXF-create-WebService/

    Spring+CXF+tomcat开发webservice

    这个项目"Spring+CXF+tomcat开发webservice"旨在教你如何利用这些技术搭建一个完整的Web服务环境,包括服务端和服务端客户端的实现。 **Spring** 是一个广泛使用的Java企业级应用开发框架,它提供了依赖注入(DI)...

    Spring+cxf请求webService

    【Spring+CXF请求WebService详解】 在Java开发领域,Spring框架以其强大的依赖注入和面向切面编程能力被广泛应用,而CXF则是一个优秀的开源服务开发框架,支持SOAP和RESTful服务。当Spring与CXF结合使用时,可以...

    Spring + cxf = webservice 完整实例源码免费下载

    Spring + cxf = webservice 完整实例源码免费下载 完全免费。此资源仅为文档提供。 版权为百度文档 "Spring + cxf = webservice 完整实例源码免费下载" 所有。

    spring+cxf 开发webservice

    【标题】"Spring+CXF 开发Web Service" 在Java世界中,开发Web服务的一个常见选择是使用Spring框架结合Apache CXF。Spring作为一个强大的轻量级框架,提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及企业...

    spring+cxf的webservice

    在描述中提到的“WebService—CXF发布服务spring+cxf的doc文档”,意味着这个压缩包可能包含了关于如何使用Spring和CXF来发布Web服务的文档。这些文档通常会包含详细的步骤,指导开发者如何配置Spring XML配置文件,...

    Spring+cxf=webservice 的jar包1

    【Spring+cxf=WebService】是将Spring框架与Apache CXF集成来实现Web服务的一种常见方式。Spring是一个强大的Java企业级应用开发框架,它提供了一种模块化和灵活的方式来组织和管理应用程序的组件。而CXF则是一个...

    spring+CXF实现WebService(http+https)

    通过Spring的ApplicationContext配置,我们可以管理CXF服务的生命周期,实现服务的发布和消费。 2. **创建WebService**: 使用CXF,首先需要定义服务接口,通常是一个Java接口,然后提供其实现。Spring会自动扫描...

    ibatis+spring+cxf+mysql搭建webservice的客户端

    ibatis+spring+cxf+mysql搭建webservice的客户端,文章地址在http://blog.csdn.net/cenyi2013/article/details/17315755. 服务端源码的下载地址在http://download.csdn.net/detail/cenyi2012/6712729

    mybatis+spring+cxf Webservice框架

    【标题】"mybatis+spring+cxf Webservice框架"是一个集成性的开发框架,它结合了三个主流的技术组件:MyBatis、Spring和Apache CXF,用于构建高效、灵活且易于维护的Web服务。MyBatis是一个优秀的持久层框架,Spring...

    SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验

    标签:spring boot、mybatis、restful、WebService、CXF 知识点: 1. 数据库设计:在本实验中,我们使用Mysql数据库来存储数据,并使用schema.sql脚本文件来创建数据库和表结构。在application.yml配置文件中,...

    maven+spring+cxf webservice demo

    【标题】"maven+spring+cxf webservice demo"是一个基于Maven、Spring和CXF框架的Web服务示例项目,旨在展示如何整合这三个技术来创建和消费Web服务。Maven是项目管理和构建工具,Spring提供了强大的依赖注入和面向...

    源码-springboot+cxf实现webservice服务端

    ### 源码分析:Spring Boot + CXF 实现WebService服务端 #### 一、概述 随着企业级应用之间的交互需求日益增长,跨平台、跨语言的服务调用变得尤为重要。WebService作为一种成熟且广泛采用的技术标准,能够很好地...

    spring+mybatis+cxf webservice实现

    调用webservice,插入数据,整合druid监控数据源;... webservice配置文件在spring-mvc.xml和web.xml中; 数据库监控地址http://localhost:8080/taixingMsg/druid/index.html... 各位同仁,生命不止,奋斗不息

    springboot+cxf实现webservice示例

    springboot+cxf实现webservice示例 &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-web &lt;!-- CXF ...

    Webservice笔记含使用cxf和jaxws两种方式开发webservice【源代码+笔记】

    第一天: 什么是webservice? 从案例(便民查询网站)分析如何实现? 使用socket实现。 使用jaxws开发webservice。 Webservice三要素 ... CXF发布rest的webservice。(重点) 综合案例: 实现便民查询网站

    Spring+cxf=webservice 的jar包2

    标题中的“Spring+cxf=webservice 的jar包2”表明这是一个与Spring框架和Apache CXF相关的Web服务实现项目。在Java开发中,Spring是一个广泛使用的轻量级框架,用于简化企业级应用的开发,而CXF则是一个开源的服务栈...

    Spring+CXF开发WebService源代码

    本教程将基于"Spring+CXF开发WebService源代码"的主题,深入探讨如何利用这两者创建和消费Web服务。 首先,Spring是一个开源的应用框架,提供了一个全面的编程和配置模型,适用于Java应用程序。它为开发企业级应用...

Global site tag (gtag.js) - Google Analytics