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之后,结果如下:
至此,第一种方式介绍完毕,接下来的博客我会继续介绍其他方法。
相关推荐
本篇文章将详细介绍如何使用CXF和camel-cxf调用Web服务,以及这两个工具的核心功能和使用场景。 Apache CXF是一个全面的服务开发框架,它支持多种Web服务标准,如SOAP、WS-*协议栈、RESTful服务等。CXF提供了丰富的...
【标题】"webservice-CXF-spring+maven" 指的是使用Apache CXF框架,结合Spring和Maven构建Web服务。Apache CXF是一个开源的Java框架,它允许开发人员创建和消费各种Web服务,包括SOAP和RESTful类型。Spring框架则...
通过这个项目,开发者不仅可以了解SpringBoot和CXF的基本概念,还能掌握两者如何协同工作,发布和调用Web服务。同时,对于SpringBoot应用的打包、部署和测试也有了一定的认识。这个例子是一个理想的实践项目,对于...
本项目“cxf+spring发布webservice和restservice”专注于利用Apache CXF框架与Spring框架结合,实现这两种服务的发布。Apache CXF是一个开源的、功能丰富的服务栈,它使得开发者能够轻松地构建和部署SOAP和RESTful ...
总的来说,"CXF-Spring-Client-J.zip"这个压缩包提供了一个使用Spring和CXF构建客户端服务调用的实例,帮助开发者了解如何在Spring环境中配置和使用CXF客户端,从而高效地开发和消费Web服务。通过学习和实践这个示例...
通过Spring配置,可以实现服务的自动发布和生命周期管理。 8. **安全与认证**:CXF支持多种安全机制,包括基本认证、digest认证、WS-Security等,确保Web服务的安全性。开发者可以根据需要添加相应的安全配置。 9....
在IT行业中,构建Web服务是常见的任务,Spring、CXF和Tomcat的组合是一个...同时,通过实际操作,还能加深对依赖注入、服务发布和消费等概念的理解。在实际项目中,这种架构可以灵活扩展,适应各种复杂的Web服务需求。
【CXF和Spring搭建Web服务代码详解】 在Java开发领域,CXF和Spring框架的结合是构建高效、灵活的Web服务的常见选择。CXF是一个开源的SOAP和RESTful Web服务框架,它允许开发者轻松地创建和消费Web服务。而Spring...
使用spring集成cxf,在两个web project里发布及调用webservice server端使用spring+springmvc+mybatis+cxf,client端使用struts2+spring+hibernate+cxf 两个工程均为myeclipse project,包含所有除myeclipse自带以外...
4. **服务注册与发布**:使用Spring配置的`JAXWSServerFactoryBean`或`JAXRSServerFactoryBean`,将服务接口和实现绑定到特定的URL上,发布Web服务。 5. **客户端调用**:在需要消费Web服务的项目中,可以使用...
Apache CXF是一个开源的Java框架,它为构建和消费Web服务提供了强大的支持,而Spring框架则是一个广泛使用的应用开发框架,它简化了Java应用的配置和管理。 【描述】:“这个是cxf 集成spring 的webservice的例子 ...
1. 发布和调用WebService: 使用CXF2.4(http://cxf.apache.org)和spring 2. 调用安全性: 使用简单的USERNAME_TOKEN 3. 服务程序中取得调用者身份 ------------------------- 接口 ------------------------- intf....
<artifactId>cxf-spring-boot-starter-jaxws <version>3.x.y ``` 这里的`3.x.y`应替换为当前最新的CXF版本。 接下来,我们需要创建一个Java接口,该接口定义了Web服务的操作。例如,我们创建一个名为`...
1. **配置Spring上下文**:首先,我们需要创建一个Spring配置文件,例如`spring-cxf.xml`,在这个文件中,我们会定义CXF的bean,如`JaxWsServerFactoryBean`,用于创建和发布WebService服务。 2. **定义WebService...
在IT行业中,SpringBoot、WebService和cxf是三个非常重要的技术组件,它们分别代表了现代Java应用程序开发的基础、服务间通信的重要方式以及一种强大的服务框架。在这个主题中,我们将深入探讨如何在SpringBoot项目...
- JAX-WS:JAX-WS(Java API for XML Web Services)是基于SOAP的WebService规范,用于定义、创建、发布和调用WebService。它取代了较早的JAX-RPC,并提供更面向对象的服务开发方式。 - JAX-RS:JAX-RS(Java API ...
- 这样,Spring会负责实例化和管理这些bean,而CXF会处理Web服务的发布和调用。 5. **部署和测试**: - 一旦服务准备好,我们可以通过CXF提供的Servlet将它部署到一个Servlet容器(如Tomcat)上。 - 测试可以...
使用SoapUI调用WebService的步骤如下: 1. 打开SoapUI,创建一个新的项目。 2. 输入WebService的URL,例如`http://localhost:8080/ws/TestWSservice`。 3. 点击“OK”,SoapUI将显示WebService的接口信息。 4. 选择...
【描述】:“CXF与Spring发布WebService”意味着我们将利用CXF提供的Web服务功能,并通过Spring框架进行管理和集成。这种结合使得Web服务的创建、配置和管理变得更加简单和灵活,同时也能够利用Spring的容器管理特性...
在本实战教程中,我们将深入探讨如何在服务器端使用CXF来发布和调用Web服务接口。 ### 1. CXF框架基础 CXF的核心在于其强大的服务引擎,它允许开发者以Java编程模型来定义服务接口,并自动生成相应的服务实现和...