`
kingaragorn
  • 浏览: 117341 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CXF学习(1) 使用CXF实现简单的HelloWorld

阅读更多
项目要用到cxf,对WebService这方面的东西不熟悉,甚至都没有用过!从JavaEye上看到一位大哥把自己录制的视频,甚是高兴,学习一下,补充一下自己!

视频分为7部分,我挨着顺序给写到播客上,希望能够帮助那些想学习cxf又无从下手的朋友!

1. 使用cxf实现简单的HelloWorld

1)使用myeclipse新建一个Java项目,项目名HelloWorld。
2)把下载的cxf-2.3.1的lib下的所有jar文件添加进来,有可能有些文件用不到。
3)建立WebService接口,Package:test,Name:HelloWorld
package test;

public interface HelloWorld {
	public String sayHello(String name);
}

4)建立接口的实现类HelloWorldImpl
package test;

public class HelloWorldImpl implements HelloWorld {

	@Override
	public String sayHello(String name) {
        //为了表明这个方法确实被调用了,写一个输出语句
		System.out.println("Say Hello is called");
		return "Hello " + name;
	}
}

5)为了把接口和实现发布为WebService,我们需要添加一些标注,最简单的是只标注一个@WebService就行了,别的采用默认,后面再讲
package test;

import javax.jws.WebService;

@WebService
public interface HelloWorld {
	public String sayHello(String name);
}

package test;

import javax.jws.WebService;

@WebService
public class HelloWorldImpl implements HelloWorld {

	@Override
	public String sayHello(String name) {
		//为了表明这个方法确实被调用了,写一个输出语句
		System.out.println("Say Hello is called");
		return "Hello " + name;
	}
}

6)接下来建立一个类,用来启动我们的WebService。因为cxf内嵌了一个Jetty,很容易通过Jetty把我们的WebService发布出来。
(1)新建一个工厂
(2)为工厂设置WebService具体实现类,注意是具体实现类
(3)为WebService设置地址
(4)只要通过这样的设置,就能够通过Jetty把我们的WebService发布到这个地址
(5)得到Server
(6)启动Server

package test;

import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

public class MainServer {

	public static void main(String[] args) {
		JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
		factory.setServiceClass(HelloWorldImpl.class);
		factory.setAddress("http://localhost:8080/HelloWorld");
		
		Server server = factory.create();
		server.start();
	}
}


7)打开浏览器,输入http://localhost:8080/HelloWorld?wsdl,就可以看到WebService生成的WSDL
该 XML 文件并未包含任何关联的样式信息。文档树显示如下。
      
−
<wsdl:definitions name="HelloWorldImplService" targetNamespace="http://test/">
−
<wsdl:types>
−
<xs:schema elementFormDefault="unqualified" targetNamespace="http://test/" version="1.0">
<xs:element name="sayHello" type="tns:sayHello"/>
<xs:element name="sayHelloResponse" type="tns:sayHelloResponse"/>
−
<xs:complexType name="sayHello">
−
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
−
<xs:complexType name="sayHelloResponse">
−
<xs:sequence>
<xs:element minOccurs="0" name="sayHelloResult" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
−
<wsdl:message name="sayHelloResponse">
<wsdl:part element="tns:sayHelloResponse" name="parameters">
    </wsdl:part>
</wsdl:message>
−
<wsdl:message name="sayHello">
<wsdl:part element="tns:sayHello" name="parameters">
    </wsdl:part>
</wsdl:message>
−
<wsdl:portType name="HelloWorld">
−
<wsdl:operation name="sayHello">
<wsdl:input message="tns:sayHello" name="sayHello">
    </wsdl:input>
<wsdl:output message="tns:sayHelloResponse" name="sayHelloResponse">
    </wsdl:output>
</wsdl:operation>
</wsdl:portType>
−
<wsdl:binding name="HelloWorldImplServiceSoapBinding" type="tns:HelloWorld">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
−
<wsdl:operation name="sayHello">
<soap:operation soapAction="" style="document"/>
−
<wsdl:input name="sayHello">
<soap:body use="literal"/>
</wsdl:input>
−
<wsdl:output name="sayHelloResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
−
<wsdl:service name="HelloWorldImplService">
−
<wsdl:port binding="tns:HelloWorldImplServiceSoapBinding" name="HelloWorldImplPort">
<soap:address location="http://localhost:8080/HelloWorld"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

8)可以看到WebService已经发布成功。
9)接下来为WebService建立一个客户端,新建一个类HelloWorldClient
(1)新建一个Jax代理工厂
(2)为WebService设置地址
(3)设置接口的类型,因为不知道具体类是什么
(4)通过create方法得到HelloWorld
(5)调用HelloWorld方法

10)启动服务器,然后运行HelloWorld的客户端
package test;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class HelloWorldClient {

	public static void main(String[] args) {
		JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		factory.setAddress("http://localhost:8080/HelloWorld");
		factory.setServiceClass(HelloWorld.class);
		HelloWorld helloWorld = (HelloWorld) factory.create();
		System.out.println(helloWorld.sayHello("KingAragorn"));
	}
}

Hello KingAragorn




分享到:
评论
1 楼 liang1022 2012-10-22  
請問要怎麼在命列行 启动服务器呢?
java MainServer 都會報錯耶

相关推荐

    CXF视频:1、使用CXF实现简单的HelloWorld

    【标题】"CXF视频:1、使用CXF实现简单的HelloWorld",这是一段关于Apache CXF框架的初级教程,旨在引导初学者通过实际操作理解如何利用CXF创建一个基本的“HelloWorld”服务。Apache CXF是一个开源的Java框架,它...

    使用CXF实现简单HelloWorld.swf

    使用CXF实现简单HelloWorld.swf 主要是让初学者学习cxf使用

    使用CXF实现简单的HelloWorld

    CXF视频教程1 使用CXF实现简单的HelloWorld

    CXF的第一个例子helloWorld

    【标题】"CXF的第一个例子helloWorld"是一个基础教程,主要介绍了如何使用Apache CXF框架创建一个简单的Web服务。Apache CXF是一个开源的Java框架,它用于构建和开发Web服务,支持SOAP、RESTful等多种通信协议。这个...

    cxf_helloworld.rar_SOA CXF_SOA JAVA _cxf_cxf helloworld_hellowor

    【标题】"cxf_helloworld.rar" 是一个关于Apache CXF框架入门的示例项目,它专注于SOA(Service-Oriented Architecture,面向服务架构)的实现,特别是使用Java技术。"SOA CXF_SOA JAVA_cxf_cxf helloworld_hello...

    apache cxf helloworld小例子

    本示例将引导你了解如何使用Apache CXF创建一个简单的“Hello World”应用程序,涉及客户端和服务端的实现。 首先,让我们从服务端(WS_Server)开始。在CXF中,服务端通常被称为服务提供者。为了创建一个服务,你...

    CXF的helloworld实现

    【CXF的helloworld实现】 Apache CXF 是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)和Web服务。它提供了一个全面的工具集,支持WS-*标准,使得开发人员能够轻松地创建和部署SOAP和RESTful服务。在...

    cxf 入门(hello world)

    【描述】:这篇文章主要介绍如何使用Apache CXF框架进行Web服务开发,通过一个简单的“Hello World”示例来帮助初学者理解CXF的基本用法。 Apache CXF是一个开源的Java框架,主要用于构建和部署SOAP和RESTful Web...

    CXF webservice 实现简单的HelloWorld

    CXF webservice 入门视频 很清晰很不错,企业当中很多都在使用CXF

    WebService CXF学习文档

    2.HelloWorld 3.WSDL描述 WebService CXF学习——进阶篇 1.SOAP讲解 2.JAX-WS讲解 3.对象传递 WebService CXF学习——高级篇(一)(二) 1.整合Spring框架 2.CXF+Spring+Hibernate 3.WS-Security ...

    Cxf应用整理学习资料

    在本节中,我们将通过一个简单的HelloWorld示例来理解CXF的基本使用方式。本例使用的是CXF2.3.1和JDK1.6.0_10版本。 ##### 1. 服务接口定义 服务接口是CXF的核心,它定义了服务端对外提供的方法。在HelloWorld示例...

    cxf helloWorld简单示例

    本示例只是一个cxf的简单的一个helloWorld程序,运行时先运行webServiceApp.java,再在地址栏中输入http://localhost:8080/helloWorld,如果在浏览器中有一串xml输出则成功,然后再运行HelloWorldClient.java文件...

    cxf实用案例代码helloworld

    在这个“cxf实用案例代码helloworld”中,我们将深入探讨如何使用CXF来实现一个简单的 HelloWorld 示例,这对于初学者理解CXF的工作原理非常有帮助。 一、CXF简介 Apache CXF是基于Java的Web服务开发框架,它提供...

    CXF3.0+Spring3.2 HelloWorld实例

    在本教程中,我们将深入探讨如何使用Apache CXF 3.0与Spring 3.2框架构建一个简单的"Hello World" Web服务实例。这个过程涵盖了关键的技术组件、配置步骤以及可能遇到的问题解决策略。 首先,Apache CXF是一个开源...

    Apache CXF之helloworld

    通过这个helloworld示例,你可以学习到如何设置CXF环境、创建服务接口、实现服务逻辑、发布服务以及生成和使用客户端代码。这将为你进一步深入学习CXF的高级特性,如WS-Security、MTOM/XOP、JAXB数据绑定等奠定基础...

    WebService (一) CXF 入门 HelloWorld

    本篇将详细介绍如何使用Apache CXF框架来创建和消费一个简单的HelloWorld WebService。 Apache CXF是一个开源的Java框架,它提供了构建和部署Web服务的工具和API。CXF不仅支持SOAP,还支持RESTful服务,使得开发...

    CXF WebService整合Spring的简单实现

    本篇将深入探讨如何将Apache CXF与Spring框架整合,以实现一个简单的Web服务。 首先,我们需要了解CXF的核心概念。CXF提供了两种主要的Web服务实现方式:JAX-WS(Java API for XML Web Services)和JAX-RS(Java ...

    CXF 2.3 集成Spring3.0入门 HelloWorld

    标题 "CXF 2.3 集成Spring3.0入门 HelloWorld" 指向的是一个关于如何在Java项目中使用Apache CXF 2.3版本与Spring 3.0框架进行集成的教程,特别是通过一个简单的"Hello World"应用来演示这个过程。Apache CXF是一个...

    cxf+spring使用经验

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

    使用CXF开发WebService简单实例

    本篇文章将深入探讨如何使用CXF来开发一个简单的“HelloWorld”Web服务实例。 首先,我们需要了解CXF的基本概念。CXF全称为CXF CXF (CXF on XFire),它整合了XFire和 Celtix两个项目,为开发者提供了一种灵活的方式...

Global site tag (gtag.js) - Google Analytics