`

用CXF+Spring发布服务端与客户端(代码优先)

    博客分类:
  • SOA
 
阅读更多

web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>WEB-INF/beans.xml</param-value>
	</context-param>

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

	<servlet>
		<servlet-name>CXFServlet</servlet-name>
		<display-name>CXF Servlet</display-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>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
</web-app>

 服务端入参POJO:

 

package demo.order;


public class Order {

	private String customerID;
	private String itemID;
	private int qty;
	private double price;

	// Contructor
	public Order() {
	}

	public String getCustomerID() {
		return customerID;
	}

	public void setCustomerID(String customerID) {
		this.customerID = customerID;
	}

	public String getItemID() {
		return itemID;
	}

	public void setItemID(String itemID) {
		this.itemID = itemID;
	}

	public int getQty() {
		return qty;
	}

	public void setQty(int qty) {
		this.qty = qty;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

}

 SEI:

 

 

package demo.order;

import javax.jws.WebService;

@WebService
public interface OrderProcess {
    String processOrder(Order order);
}

 实现类:

 

 

package demo.order; 

import javax.jws.WebService;

@WebService
public class OrderProcessImpl implements OrderProcess {

    public String processOrder(Order order) {
		String orderID = validate(order);
        return orderID;
    }

	/**
	 * Validates the order and returns the order ID
	**/
	private String validate(Order order) {
		String custID = order.getCustomerID();
		String itemID = order.getItemID();
		int qty = order.getQty();
		double price = order.getPrice();

		if (custID != null && itemID != null && !custID.equals("") && !itemID.equals("") && qty > 0 && price > 0.0) {
			return "ORD1234";
		}
		return null;
	}
}

通过spring发布服务配置:

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

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

	<jaxws:endpoint 
	  id="orderProcess" 
	  implementor="demo.order.OrderProcessImpl" 
	  address="/OrderProcess" />
	  
</beans>

 客户端:

package demo.order.client;


import demo.order.OrderProcess;
import demo.order.Order;

import org.springframework.context.support.ClassPathXmlApplicationContext;


public final class Client {

    public Client() {
    }

    public static void main(String args[]) throws Exception {
         ClassPathXmlApplicationContext context 
            = new ClassPathXmlApplicationContext(new String[] {"demo/order/client/client-beans.xml"});

        OrderProcess client = (OrderProcess) context.getBean("orderClient");
		Order order = new Order();
		order.setCustomerID("C001");
		order.setItemID("I001");
		order.setQty(100);
		order.setPrice(200.00);

        String orderID = client.processOrder(order);
        String message = (orderID == null) ? "Order not approved" : "Order approved; order ID is " + orderID;
		System.out.println(message);
            
    }
}

 客户端spring配置:

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

	<jaxws:client id="orderClient" serviceClass="demo.order.OrderProcess" address="http://localhost:8080/orderapp/OrderProcess" >
	</jaxws:client>

</beans>

 

 

分享到:
评论

相关推荐

    cxf+spring开发webservice客户端与服务端实例

    本实例将详细阐述如何利用CXF和Spring来构建Web服务的客户端和服务端。 一、CXF简介 CXF是一个开源的Java框架,专门用于构建和消费Web服务。它支持SOAP、RESTful等多种服务模型,并且可以方便地与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

    cxf+spring+client

    在这个"**cxf+spring+client**"的主题中,我们将深入探讨CXF与Spring框架结合创建客户端服务的细节,以及如何利用Spring MVC来增强应用程序的交互性。 首先,让我们关注CXF。CXF允许开发者使用Java编程语言来定义和...

    CXF+SPRING例子

    4. **部署和发布**:服务端项目通过Spring的ApplicationContext加载配置,并启动CXF服务器,从而对外发布服务。这可以通过调用`org.apache.cxf.frontend.ServerFactoryBean`的相关方法来完成。 【CXFSpringClient】...

    CXF2.1.3+spring3.0+struts2.3.4

    此外,CXF还支持JAX-WS和JAX-RS标准,提供了丰富的客户端和服务端API。 【Spring】在该组合中扮演着容器的角色,负责管理组件的生命周期和依赖关系。Spring3.0引入了许多增强功能,如AOP(面向切面编程)改进、支持...

    cxf-spring 服务端and客户端

    【标题】"cxf-spring 服务端and客户端"揭示了这个项目是关于Apache CXF框架与Spring框架的集成,用于构建服务端和客户端应用程序。Apache CXF是一个开源的Java框架,它允许开发者创建和消费Web服务,而Spring框架则...

    CXF+Spring+Tomcat发布WebService

    【标题】"CXF+Spring+Tomcat发布WebService"涉及的是使用Apache CXF框架与Spring框架结合,在Tomcat服务器上部署和消费Web服务的过程。这是一个常见的企业级应用开发场景,特别是对于实现基于SOAP协议的Web服务。...

    cxf简单实例 服务端与客户端

    总结起来,这个“cxf简单实例 服务端与客户端”是一个完整的示例,它演示了如何使用CXF创建一个Web服务,包括定义接口、实现服务、发布服务,以及生成和使用客户端代理进行调用。通过这个实例,开发者可以深入理解...

    cxf客户端调用axis服务端流程

    总之,使用CXF客户端调用Axis服务端涉及多个步骤,包括生成客户端代码、配置客户端、创建服务代理以及进行实际调用。理解这些步骤并正确实现它们是成功通信的关键。在实际开发过程中,可能会遇到各种问题,需要耐心...

    spring4+cxf3+maven3整合客户端与服务端

    通过这个整合项目,开发者可以学习到如何利用Spring 4进行服务端控制流的管理,使用CXF 3发布和消费Web服务,以及Maven 3如何帮助管理整个项目的构建流程。这将为开发者提供一个实际的平台,以实践和掌握这些技术的...

    cxf_spring 服务端和客户端demo

    【标题】"cxf_spring 服务端和客户端demo"主要涵盖了使用Apache CXF与Spring框架结合实现Web服务(Web Service)的示例。Apache CXF是一个开源的Java框架,它用于构建和开发服务端和客户端的Web服务,而Spring框架则...

    使用cxf和spring开发基于https的webservice服务端以及客户端样例

    本示例将详细介绍如何使用Apache CXF和Spring框架来开发基于HTTPS的安全Web服务,包括服务端和客户端的实现。 Apache CXF是一个开源的Java框架,它支持创建和消费各种Web服务,包括SOAP和RESTful API。而Spring框架...

    cxf+spring使用经验

    在结合 Spring 框架使用时,CXF 可以方便地与 Spring 集成,实现服务的发布和调用。Spring 可以管理 CXF 组件的生命周期,提供事务、安全等服务,并通过配置简化服务的实现。 **一、搭建开发环境** 1. **选择依赖...

    cxf+spring webservice server demo

    总结来说,"cxf+spring webservice server demo"项目提供了一个实战的平台,演示了如何利用CXF和Spring的强大力量构建高效、可扩展的Web服务,并且具备了与独立客户端交互的能力。对于学习和理解这两个框架的集成...

    CXF+Spring整合资料

    6. **测试和调试**:使用CXF提供的工具,如CXF wsdl2java生成客户端代码,或者利用JUnit进行服务端和客户端的测试。 7. **日志和异常处理**:整合过程中,合理配置日志框架(如Log4j或SLF4J)和异常处理机制,可以...

    Spring+CXF+MyBatis整合代码

    本项目是关于"Spring+CXF+MyBatis"的整合代码实现,旨在提供一个可直接运行的服务端解决方案。接下来,我们将深入探讨这三个核心组件及其整合过程中的关键知识点。 **Spring框架** Spring是Java领域的一个重量级...

    简单cxf+spring构建webservice服务

    标题“简单cxf+spring构建webservice服务”指的是使用Apache CXF框架与Spring框架结合来创建Web服务。Apache CXF是一个开源的Java框架,它允许开发者创建和消费各种Web服务,包括SOAP和RESTful风格。Spring框架则为...

    结合spring使用CXF 2.5 * 做服务端和客户端开发

    本篇文章将详细探讨如何结合Spring与CXF 2.5版本来实现服务端和客户端的开发,以及相关的源码分析和工具使用。 首先,让我们了解Spring与CXF的集成基础。Spring框架提供了一种优雅的方式来管理应用程序的组件,如...

    cxf+spring+axis包

    【描述】"cxf-2.4.1+axis-1.4,整合spring3.0所用jar包"说明了这个压缩包的目的,即为开发者提供了一套完整的环境,用于在Spring 3.0框架下整合Apache CXF(一个开源的服务端和客户端Web服务实现)和Axis(一个用于...

    cxf+Spring实现webservice工程

    在提供的压缩包文件中,"CXFServer"可能包含了服务端的相关代码,包括Spring配置文件、服务接口和实现类。而"CXFClient"则可能包含了客户端代码,用于调用服务端的Web服务。通过分析这些代码,可以更深入地了解"CXF+...

Global site tag (gtag.js) - Google Analytics