`
shenyuc629
  • 浏览: 195106 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

maven构建第一个cxf项目以及分析

    博客分类:
  • CXF
阅读更多
本次主要讨论用maven构建第一个cxf项目,以及各个类的含义以及方法,并且简单分析wsdl的内容。如需转载,请标明转载地址,谢谢。


   首先,在Eclipse中用maven构建一个quickstart版本的maven项目,并且在pom文件中添加4个依赖,分别是:cxf-rt-frontend-jaxws、cxf-rt-databinding-aegis、cxf-rt-transports-http、cxf-rt-transports-http-jetty,在本次测试时用的版本都是2.5.2,在笔者测试时最高版本升级为2.6.2。以下为本次项目的pom文件中的依赖:
	<dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>2.5.2</version>
    </dependency>
   	<dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-rt-databinding-aegis</artifactId>
		<version>2.5.2</version>
	</dependency>
	<dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>2.5.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http-jetty</artifactId>
        <version>2.5.2</version>
    </dependency>


第一步,建立HelloWorld接口,此处的Document应该为W3C的文档形式。
public interface HelloWorld {
	String sayHi(String text);
	Document getADocument();
}

第二步,建立HelloWorld的实现类HelloWorldImpl。
public class HelloWorldImpl implements HelloWorld{

	public String sayHi(String text) {
		System.out.println("sayHi called");
        return "Hello " + text;
	}

	public Document getADocument() {
		DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
		DocumentBuilder db = null;
		try {
			db = dbfac.newDocumentBuilder();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		}
		Document doc =db.newDocument();
		Element carrot = doc.createElement("carrot");
		doc.appendChild(carrot);
		carrot.appendChild(doc.createTextNode("Carrots are roots"));
		return doc;
	}
	
}

DocumentBuilderFactory:该类是一个解析器的工厂,包含的解析器可以在XML文档产生一个DOM对象树,是一个工厂类。
DocumentBuilder : 该API在XML文档中包含DOM文档实例。

第三步,建立服务类Server。
	HelloWorldImpl hwi = new HelloWorldImpl();
		ServerFactoryBean fac = new ServerFactoryBean();
		fac.setServiceClass(HelloWorld.class);
		fac.setAddress("http://localhost:8899/hello");
		fac.setServiceBean(hwi);
		fac.getServiceFactory().setDataBinding(new AegisDatabinding());
		fac.create();
        System.out.println("Server ready...");

        Thread.sleep(5 * 60 * 1000);
        System.out.println("Server exiting");
        System.exit(0);
	}


该服务首先创建一个服务工厂,然后通过服务工厂设置服务类、服务地址、服务实体,同时把这些服务的参数绑定到该服务中,同时设置一个线程来控制服务启动的时间为1分钟,有效的控制了端口占用问题。

第三步,创建客户端
ClientProxyFactoryBean cfac = new ClientProxyFactoryBean();
		if(args != null && args.length>0 && !"".equals(args[0])){
			cfac.setAddress(args[0]);
		}else{
			cfac.setAddress("http://localhost:8899/hello");
		}
		cfac.getServiceFactory().setDataBinding(new AegisDatabinding());
		HelloWorld client = cfac.create(HelloWorld.class);
		System.out.println(client.sayHi(System.getProperty("user.name")));
		
		System.out.println("------------------------------");
		Document doc = client.getADocument();
		Element e = (Element) doc.getFirstChild();
		System.out.println(e.getTagName());
		Text t = (Text) e.getFirstChild();
		
		System.out.println(t);
	}


首先获得客户端代理工厂类,通过该类来获绑定务中信息,客户端的服务地址必须和服务端的地址相同,否则无法访问。

   到此为止,我们已经成功的书写好了所需要的代码,然后运行server,此处server的启动时间为1分钟,所以在一分钟之类运行客户端,看到如下结果:
Hello Administrator
------------------------------
carrot
[#text: Carrots are roots]

本次测试附带源码,读者可以下载。




       
分享到:
评论

相关推荐

    maven cxf 项目搭建,可以直接访问

    ### 使用Maven构建CXF项目 1. 创建Maven项目:使用Maven的archetype插件创建一个新的Maven项目。 2. 添加CXF依赖:在`pom.xml`中添加上述CXF的依赖项。 3. 编写服务代码:根据需求编写服务接口和实现。 4. 生成服务...

    apache-cxf-2.7.7以及cxf客户端所需要的jar包

    Apache CXF是一个开源的Java框架,它主要用于构建和开发Web服务。这个压缩包"apache-cxf-2.7.7以及cxf客户端所需要的jar包"包含了Apache CXF 2.7.7版本及其客户端运行所需的库文件。这些jar包对于创建、部署和消费...

    CXF入门 -- 第一个简单webService

    【CXF入门 -- 第一个简单...通过本篇文章,你将了解到如何使用CXF创建第一个简单的Web服务,以及如何从客户端调用这个服务。实践过程中,你将对CXF的生命周期、服务暴露、客户端生成和通信机制有更深入的理解。

    CXF2.1.3+spring3.0+struts2.3.4

    CXF2.1.3版本包含了一些关键特性,如WSDL第一类公民支持,这意味着可以从Java代码自动生成WSDL,或者从WSDL反向生成Java代码。此外,CXF还支持JAX-WS和JAX-RS标准,提供了丰富的客户端和服务端API。 【Spring】在该...

    CXF的第一个例子helloWorld

    【标题】"CXF的第一个例子helloWorld"是一个关于Apache CXF框架入门教程的实例,它主要介绍了如何使用CXF创建并运行一个简单的RESTful服务。Apache CXF是一个开源的Java框架,它允许开发者构建和消费Web服务。这个...

    cxf的jar包

    CXF(CXF: Composite eXtensible Services Framework)是一个开源的Java框架,它用于构建和开发服务导向架构(SOA)中的Web服务。CXF允许开发者以他们选择的语言(如Java)编写服务端和客户端代码,同时支持多种Web...

    关于CXF的用例

    在CXF项目中,Maven帮助我们管理依赖关系,自动化构建过程,以及执行测试和部署。通过在`pom.xml`文件中定义相关依赖,我们可以轻松引入CXF库和其他必要的组件。 三、IntelliJ IDEA设置 IntelliJ IDEA是一款强大的...

    apache-cxf-2.4.6.zip

    3. **WSDL第一和代码第一的开发模式**:CXF允许开发者根据WSDL文件生成Java服务接口和实现,或者直接编写Java代码并自动生成WSDL,提供灵活的服务定义方式。 4. **丰富的协议栈**:CXF支持各种WS-*协议,如WS-...

    apache-cxf-2.2.4

    1. **SOAP支持**:CXF 支持SOAP 1.1和1.2协议,可以处理各种复杂的SOAP消息结构,包括WSDL(Web服务描述语言)的第一和第二版本。 2. **RESTful服务**:CXF也支持RESTful服务的创建,通过JAX-RS(Java API for ...

    cxf依赖jar包.zip

    集成CXF到Web项目的第一步是添加依赖。在描述中提到的"**cxf依赖jar包.zip**"包含了 CXF 运行所需的库文件。解压后,你会看到一系列的JAR文件,这些文件包含了许多CXF的核心组件和依赖项,如Apache CXF的运行时API、...

    cxf所需jar包

    CXF(CXF: Composite eXtensible Services Framework)是一个开源的Java框架,它主要用于构建和部署Web服务。CXF提供了全面的Web服务支持,包括SOAP、RESTful、WS-*规范以及各种协议和绑定。在Java开发环境中,使用...

    cxf webService简单例子

    1. **设置环境**:确保安装了Java JDK和Apache Maven(或Gradle),这些都是CXF项目的构建工具。同时,将CXF库添加到项目的类路径中。 2. **创建服务接口**:定义服务的公共API,这些接口通常使用Java的注解来指定...

    CXF学习-环境搭建

    4. **创建第一个CXF项目** - 创建一个新的Maven项目,因为CXF的依赖管理非常方便。在pom.xml文件中添加CXF的核心依赖,如`cxf-rt-frontend-jaxws`和`cxf-rt-transports-http`。 5. **编写服务接口和实现** - 定义...

    apache-cxf-3.0.0

    Apache CXF 是一个开源的Java框架,主要用于构建和开发服务导向架构(Service-Oriented Architecture, SOA)和Web服务。这个"apache-cxf-3.0.0"压缩包包含的是Apache CXF 3.0.0版本的源代码、库文件和其他相关资源。...

    cxf-2.3.11

    4. **构建工具**: 如Ant或Maven配置文件,用于构建和管理CXF项目。 5. **许可证和法律文件**: 提供了关于软件许可和版权的信息。 使用Apache CXF,开发者可以轻松地实现以下功能: - 创建基于JAX-WS规范的Web服务...

    02.CXF功能概述_CXF发展历史和使用CXF开发WebService服务器端

    1. **SOAP支持**:CXF能够处理SOAP 1.1和1.2规范,支持WSDL(Web服务描述语言)第一版和第二版,以及WS-I基本配置。它允许开发者以Java编程模型的方式来编写SOAP服务,简化了服务的开发过程。 2. **RESTful服务**:...

    apache-cxf-3.3.3.zip

    Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。这个"apache-cxf-3.3.3.zip"压缩包包含了CXF框架的3.3.3版本,这是一个重要的里程碑,因为它包含了在此版本之前的所有修复、...

    cxf整合spring发布webservice(源码)

    1. **环境准备**:确保已经安装了Java开发环境(JDK)、Maven或Gradle(用于构建项目)、以及Linux环境。 2. **创建Spring项目**:使用Spring Initializr生成一个新的Maven或Gradle项目,包含CXF和Spring的相关依赖...

    apache-cxf-3.1.8.zip

    2. **SOAP支持**:CXF提供了全面的SOAP支持,包括WSDL(Web Services Description Language)第一版和第二版,以及WS-I(Web Services Interoperability)基本配置。开发者可以使用CXF生成WSDL文档,或者从WSDL逆向...

    CXF2.6.7完整架包

    7. **工具和插件**:CXF提供了一系列的工具,如WSDL第一和第二代生成器,可以将Java类转换为WSDL,或者反过来将WSDL转换为Java类。此外,还有CXF的Maven插件,方便在Maven项目中使用。 "CXF2.6.7_lib"这个压缩包...

Global site tag (gtag.js) - Google Analytics