`
心动音符
  • 浏览: 336580 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

使用CXF发布和调用webService -- 不使用Spring

 
阅读更多


CXF和Axis2是两个比较流行的webService框架,接下来我会写几篇博客简单介绍如何使用这两种框架。首先,先简单介绍一下CXF的使用。

 

CXF发布webService有多种方法,这里我介绍三种:

1、不使用Spring,CXF自动发布webService

2、不使用Spring,CXF手动发布webService

3、使用Spring + CXF发布webService

 

这篇博客以实例介绍第一种方法——不使用Spring,CXF自动发布webService。

 

服务端:

目录结构如下:

 
 IHelloWorldServer代码:

 

package com.test.server;  
  
public interface IHelloWorldServer {  
    public String sayHello(String username);   
}

 HelloWorldServerImp代码:

package com.test.server;  
  
public class HelloWorldServerImp implements IHelloWorldServer {  
  
    @Override  
    public String sayHello(String username) {  
        return username+" : HelloWorld";  
    }  
}

 这两个是最最简单的java类。

 WebServlet代码:

 

 

package com.test.server;  
  
import javax.servlet.ServletConfig;  
  
import org.apache.cxf.Bus;  
import org.apache.cxf.BusFactory;  
import org.apache.cxf.frontend.ServerFactoryBean;  
import org.apache.cxf.transport.servlet.CXFNonSpringServlet;  
  
public class WebServlet extends CXFNonSpringServlet {  
//  private static final String SERVICE_SUFFIX = "";  
    private static final long serialVersionUID = 1L;    
        
    @Override    
    protected void loadBus(ServletConfig servletConfig) {    
        super.loadBus(servletConfig);    
          
        Bus bus = getBus();    
        BusFactory.setDefaultBus(bus);    
        HelloWorldServerImp helloWorld = new HelloWorldServerImp();//实现类    
         
        ServerFactoryBean serverFactoryBean = new ServerFactoryBean(); //server工厂    
        serverFactoryBean.setServiceClass(IHelloWorldServer.class);// 接口类    
        serverFactoryBean.setAddress("/helloWorld"); //服务请求路径    
        serverFactoryBean.setServiceBean(helloWorld);    
        serverFactoryBean.create();    
    }    
}

 这个Servlet用于发布webService,当程序部署后,容器会自动调用这里面的方法。

Web.xml文件

<span style="font-family:Microsoft YaHei;font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
    id="WebApp_ID" version="3.0">  
    <display-name>cxf_demo</display-name>  
    <welcome-file-list>  
        <welcome-file>index.html</welcome-file>  
        <welcome-file>index.htm</welcome-file>  
        <welcome-file>index.jsp</welcome-file>  
        <welcome-file>default.html</welcome-file>  
        <welcome-file>default.htm</welcome-file>  
        <welcome-file>default.jsp</welcome-file>  
    </welcome-file-list>  
    <display-name>cxf_demo</display-name>  
      
    <servlet>  
        <servlet-name>CXFServlet</servlet-name>  
        <servlet-class>com.test.server.WebServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>CXFServlet</servlet-name>  
        <url-pattern>/ws/*</url-pattern>  
    </servlet-mapping>  
</web-app></span>  

 将上述项目发布到Tomcat中,他会自动发布webService,输入网址:http://localhost:8080/cxf_demo_noSpring_1/ws,即可看到发布好的webService,输入网址:http://localhost:8080/cxf_demo_noSpring_1/ws/helloWorld?wsdl,查看wsdl文件,能正常显示,说明webService发布成功。

客户端:

HelloWorldClient代码:

package com.test.client;  
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;  
  
public class HelloWorldClient {  
    public static void main(String[] args) {  
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();  
        org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/cxf_demo_noSpring_1/ws/helloWorld?wsdl");  
                Object[] objects;  
        try {  
            objects = client.invoke("sayHello", "haitao");  
            //输出调用结果  
            System.out.println(objects[0].toString());  
        } catch (Exception e) {  
            e.printStackTrace();  
        }   
    }  
}  

 run之后,结果如下:



 

 

至此,第一种方式介绍完毕,接下来的博客我会继续介绍其他方法。

 

 

  • 大小: 19.4 KB
  • 大小: 5.8 KB
分享到:
评论

相关推荐

    使用CXF和camel-cxf调用webservice

    本篇文章将详细介绍如何使用CXF和camel-cxf调用Web服务,以及这两个工具的核心功能和使用场景。 Apache CXF是一个全面的服务开发框架,它支持多种Web服务标准,如SOAP、WS-*协议栈、RESTful服务等。CXF提供了丰富的...

    webservice-CXF-spring+maven

    【标题】"webservice-CXF-spring+maven" 指的是使用Apache CXF框架,结合Spring和Maven构建Web服务。Apache CXF是一个开源的Java框架,它允许开发人员创建和消费各种Web服务,包括SOAP和RESTful类型。Spring框架则...

    springboot整合CXF发布webservice和客户端调用

    通过这个项目,开发者不仅可以了解SpringBoot和CXF的基本概念,还能掌握两者如何协同工作,发布和调用Web服务。同时,对于SpringBoot应用的打包、部署和测试也有了一定的认识。这个例子是一个理想的实践项目,对于...

    cxf+spring发布webservice和restservice

    本项目“cxf+spring发布webservice和restservice”专注于利用Apache CXF框架与Spring框架结合,实现这两种服务的发布。Apache CXF是一个开源的、功能丰富的服务栈,它使得开发者能够轻松地构建和部署SOAP和RESTful ...

    CXF-Spring-Client-J.zip

    总的来说,"CXF-Spring-Client-J.zip"这个压缩包提供了一个使用Spring和CXF构建客户端服务调用的实例,帮助开发者了解如何在Spring环境中配置和使用CXF客户端,从而高效地开发和消费Web服务。通过学习和实践这个示例...

    webService(基于cxf)的完整例子

    通过Spring配置,可以实现服务的自动发布和生命周期管理。 8. **安全与认证**:CXF支持多种安全机制,包括基本认证、digest认证、WS-Security等,确保Web服务的安全性。开发者可以根据需要添加相应的安全配置。 9....

    Spring+CXF+tomcat开发webservice

    在IT行业中,构建Web服务是常见的任务,Spring、CXF和Tomcat的组合是一个...同时,通过实际操作,还能加深对依赖注入、服务发布和消费等概念的理解。在实际项目中,这种架构可以灵活扩展,适应各种复杂的Web服务需求。

    CXF和Spring搭建webservice代码

    【CXF和Spring搭建Web服务代码详解】 在Java开发领域,CXF和Spring框架的结合是构建高效、灵活的Web服务的常见选择。CXF是一个开源的SOAP和RESTful Web服务框架,它允许开发者轻松地创建和消费Web服务。而Spring...

    spring集成cxf,server发布webservice,client调用webservice

    使用spring集成cxf,在两个web project里发布及调用webservice server端使用spring+springmvc+mybatis+cxf,client端使用struts2+spring+hibernate+cxf 两个工程均为myeclipse project,包含所有除myeclipse自带以外...

    cxf+spring实现webservice

    4. **服务注册与发布**:使用Spring配置的`JAXWSServerFactoryBean`或`JAXRSServerFactoryBean`,将服务接口和实现绑定到特定的URL上,发布Web服务。 5. **客户端调用**:在需要消费Web服务的项目中,可以使用...

    cxf+spring webservice demo client

    Apache CXF是一个开源的Java框架,它为构建和消费Web服务提供了强大的支持,而Spring框架则是一个广泛使用的应用开发框架,它简化了Java应用的配置和管理。 【描述】:“这个是cxf 集成spring 的webservice的例子 ...

    CXF 2.4 WebService 发布和调用的身份验证和获取示例代码

    1. 发布和调用WebService: 使用CXF2.4(http://cxf.apache.org)和spring 2. 调用安全性: 使用简单的USERNAME_TOKEN 3. 服务程序中取得调用者身份 ------------------------- 接口 ------------------------- intf....

    Springboot整合CXF发布Web service和客户端调用(用户和密码验证)

    &lt;artifactId&gt;cxf-spring-boot-starter-jaxws &lt;version&gt;3.x.y ``` 这里的`3.x.y`应替换为当前最新的CXF版本。 接下来,我们需要创建一个Java接口,该接口定义了Web服务的操作。例如,我们创建一个名为`...

    Spring+CXF 发布WebService服务

    1. **配置Spring上下文**:首先,我们需要创建一个Spring配置文件,例如`spring-cxf.xml`,在这个文件中,我们会定义CXF的bean,如`JaxWsServerFactoryBean`,用于创建和发布WebService服务。 2. **定义WebService...

    SpringBoot WebService cxf接口发布以及logbok日志集成

    在IT行业中,SpringBoot、WebService和cxf是三个非常重要的技术组件,它们分别代表了现代Java应用程序开发的基础、服务间通信的重要方式以及一种强大的服务框架。在这个主题中,我们将深入探讨如何在SpringBoot项目...

    Webservice-CXF实用手册学习大全

    - JAX-WS:JAX-WS(Java API for XML Web Services)是基于SOAP的WebService规范,用于定义、创建、发布和调用WebService。它取代了较早的JAX-RPC,并提供更面向对象的服务开发方式。 - JAX-RS:JAX-RS(Java API ...

    spring+cxf编写简单的webservice接口

    - 这样,Spring会负责实例化和管理这些bean,而CXF会处理Web服务的发布和调用。 5. **部署和测试**: - 一旦服务准备好,我们可以通过CXF提供的Servlet将它部署到一个Servlet容器(如Tomcat)上。 - 测试可以...

    springboot整合cxf发布webservice以及调用的方法

    使用SoapUI调用WebService的步骤如下: 1. 打开SoapUI,创建一个新的项目。 2. 输入WebService的URL,例如`http://localhost:8080/ws/TestWSservice`。 3. 点击“OK”,SoapUI将显示WebService的接口信息。 4. 选择...

    cxf与spring发布WebService

    【描述】:“CXF与Spring发布WebService”意味着我们将利用CXF提供的Web服务功能,并通过Spring框架进行管理和集成。这种结合使得Web服务的创建、配置和管理变得更加简单和灵活,同时也能够利用Spring的容器管理特性...

    CXF 框架实战代码--服务器端CXF接口发布与调用

    在本实战教程中,我们将深入探讨如何在服务器端使用CXF来发布和调用Web服务接口。 ### 1. CXF框架基础 CXF的核心在于其强大的服务引擎,它允许开发者以Java编程模型来定义服务接口,并自动生成相应的服务实现和...

Global site tag (gtag.js) - Google Analytics