`

简单webservice(cxf)实例

阅读更多
我们的环境是eclipse , maven。

在开发java webservice时,有两个比较流行的框架:axis2和cxf。cxf可以无缝的和spring集成,而axis2需要打包成aar文件,在tomcat下面跑。于是我们选择了cxf开发webservice。

下面一步步的介绍用cxf开发服务端和客户端的例子。

首先开发服务端:

一:在pom.xml文件中加入依赖:

  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-api</artifactId>
   <version>2.5.0</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-frontend-jaxws</artifactId>
   <version>2.5.0</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-bindings-soap</artifactId>
   <version>2.5.0</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-transports-http</artifactId>
   <version>2.5.0</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-ws-security</artifactId>
   <version>2.5.0</version>
  </dependency>

然后会在maven dependencies文件夹中看到引用的jar包

二:开发服务的接口类和实现类

首先接口类:

package com.mycompany.webservice.server;

import javax.jws.WebService;

@WebService
public interface Greeting {
   public String greeting(String userName);
}

然后实现类:

package com.mycompany.webservice.server;

import java.util.Calendar;
import javax.jws.WebService;

@WebService(endpointInterface = "com.mycompany.webservice.server.Greeting")
public class GreetingServiceImpl implements Greeting {

public String greeting(String userName) {
  return "Hello " + userName + ", currentTime is "
    + Calendar.getInstance().getTime();
}
}
注意上面实现类的endpointInterface的接口类路径不要写错,否则会报Could not load Webservice SEI

服务端的代码开发就到此了。下面要配置文件。

在application.xml中:

添加
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cache="http://www.springframework.org/schema/cache"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xsi:schemaLocation="
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/cache
        http://www.springframework.org/schema/cache/spring-cache-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/cache/spring-context-3.2.xsd
        http://cxf.apache.org/jaxws  
   http://cxf.apache.org/schemas/jaxws.xsd"
       default-autowire="byName" default-lazy-init="true">
<!--实现类的bean,需要spring注入 -->

<bean id="greetingServiceImpl" class="com.mycompany.webservice.server.GreetingServiceImpl"/>
<jaxws:endpoint id="greetingService"  implementor="#greetingServiceImpl"   address="/Greeting" />

在web.xml中:

添加

<servlet> 
        <servlet-name>CXFServlet</servlet-name> 
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>CXFServlet</servlet-name> 

<!--==这个设置很重要,那么我们的webservice的地址就是http://localhost:8080/yourProgramName/webservice/Greeting===-->
        <url-pattern>/webservice/*</url-pattern> 
    </servlet-mapping>

好了。到此我们的服务端就开发好了。。

就可以通过http://localhost:8080/yourProgramName/webservice/Greeting?wsdl 访问看到我们的wsdl了。

下面开发我们的客户端,来调用上面的服务。

package com.mycompany.webservice.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;


public class GreetingServiceClient {
public static void main(String[] args) {
  //创建WebService客户端代理工厂
  JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
  //注册WebService接口
  factory.setServiceClass(Greeting.class);
  //设置WebService地址
  factory.setAddress("http://localhost:8080/yourProgramName/webservice/Greeting");
  Greeting greetingService = (Greeting)factory.create();
  System.out.println("invoke webservice...");
  System.out.println("message context is:"+greetingService.greeting("gary"));  
}
}

好了客户端也开发完成。
分享到:
评论

相关推荐

    webservice使用cxf的实例

    总的来说,"webservice使用cxf的实例"这个主题涵盖了从基础理论到实际操作的各个环节,包括CXF框架的使用、Web服务的创建与部署、客户端调用、数据绑定、安全性和Spring集成等多个方面。通过学习和实践,开发者可以...

    WebService CXF 详细教程

    5. **创建客户端**:同样,使用CXF工具从WSDL生成客户端代理类,然后实例化并调用服务。 **五、CXF文件结构** 在"webService api"这个压缩包中,可能包含以下内容: 1. **WSDL文件**:描述服务接口和消息格式的...

    webservice cxf 简单实例

    在本实例中,我们将探讨如何使用Eclipse IDE和Apache CXF来创建和发布一个简单的Web服务。首先,确保你已经安装了Eclipse IDE和Apache CXF的插件。这些插件通常可以在Eclipse Marketplace中找到,通过搜索"CXF"进行...

    简单的webservice+Cxf+Spring数据对接实例以及jar.rar

    简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar...

    webservice cxf集成servlet

    此方法用于加载CXF的Bus实例,这是CXF框架的核心组件之一。 #### 二、服务端配置与实现 ##### 1. POJO类定义 - **实体类**:创建一个简单的POJO类`BigData`,用于封装数据。 ##### 2. 定义接口 - **接口声明**:...

    WebService CXF 对象传递 附

    本文将深入探讨如何在CXF中进行对象传递,并结合相关代码实例来帮助理解。 1. **CXF简介** CXF(Code first eXtended Framework)是一个Java Web服务框架,它提供了从Java类创建Web服务以及从WSDL创建Java服务端点...

    WebService CXF、 Mybatis简单实例

    综上所述,"WebService CXF、 Mybatis简单实例"是一个结合了Web服务开发、数据库操作以及依赖管理和事务控制的综合示例。这个实例对初学者来说是一份很好的学习资料,可以帮助他们理解这些技术的使用方式以及如何在...

    webservice天气预报例子cxf实例

    在本例中,“webservice天气预报例子cxf实例”指的是使用Apache CXF框架实现的一个天气预报相关的Web服务示例。 Apache CXF是一个开源框架,它为开发和部署Web服务提供了全面的支持。CXF允许开发者通过Java编程模型...

    CXF WebService实例

    在这个"CXF WebService实例"中,我们将深入探讨如何使用CXF进行Web服务的开发,以及涉及到的一些关键知识点。 首先,让我们从最基础的"HelloWorld"例子开始。在Java中,创建一个CXF WebService的"HelloWorld"示例...

    webservice之cxf实例

    【描述】:在这个“webservice之cxf实例”中,我们将深入学习Apache CXF框架在实现Web服务中的具体操作。首先,我们需要了解CXF的基本概念,它作为一个服务端和客户端的栈,支持多种协议和标准,包括SOAP、RESTful、...

    Java webservice cxf客户端调用demo和服务端

    Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...

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

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

    webservice cxf 整合spring例子源代码

    【标题】:Webservice CXF 整合Spring的实例源码解析 在Web服务开发中,Apache CXF是一个广泛使用的开源框架,它提供了创建、部署和管理Web服务的强大功能。CXF不仅支持SOAP,还支持RESTful API,使得开发者能够...

    webservice cxf 客户端创建

    在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同...Apache CXF提供了一套强大的工具和API,使得开发Web服务客户端变得更加简单和灵活。理解并熟练掌握这些步骤,将有助于你在开发过程中节省时间和提高效率。

    springmvc+webservice(cxf)+maven 完整实例

    Spring MVC、WebService(CXF)和Maven是Java开发中常用的三大技术,它们在构建现代企业级应用中扮演着重要角色。本实例结合这三者,提供了一个完整的可运行项目,便于开发者快速理解和实践。 首先,Spring MVC是...

    webservice cxf spring整合返回list,bean,string,json,xml项目完整实例

    例如,使用`@WebService`注解标记服务类,使用`@WebMethod`标记服务方法,然后通过CXF的Servlet或Spring的ApplicationContext来发布服务。 4. **返回List类型数据**:在Web服务中,你可以返回一个List类型的集合,...

    webservice cxf jar包

    【描述】提到的"Webservice CXF Jar包"在没有进行冗余检查的情况下,包含了一系列必要的jar文件,能够实现一个简单的Web服务DEMO并成功运行。这表明这些库文件提供了基本的功能,足以支持一个基础的Web服务实例。 ...

    SSH整合cxf webservice实例

    SSH整合CXF Webservice实例详解 在Java世界中,SSH(Spring、Struts、Hibernate)是一种常见的企业级应用开发框架组合,它提供了强大的MVC(Model-View-Controller)架构支持,以及持久层管理和业务逻辑处理。而CXF...

    WebService CXF使用说明

    - **依赖注入**:CXF 可以利用 Spring 的依赖注入(DI)特性,将服务实例注入到需要使用它们的其他组件中,提高了代码的可维护性和灵活性。 - **事务管理**:结合 Spring 的事务管理,可以方便地处理 Web 服务中的...

    webservice cxf 简单使用

    【标题】:CXF Web服务框架的简单应用 在IT领域,Web服务是不同系统间进行数据交换和交互的一种标准方式。Apache CXF是一个开源框架,它提供了创建和消费Web服务的强大工具。本教程将围绕“CXF Web服务的简单使用”...

Global site tag (gtag.js) - Google Analytics