使用CXF开发WebService服务器端接口

CXF作为java领域主流的WebService实现框架,Java程序员有必要掌握它。

CXF主页:http://cxf.apache.org/

简介:百度百科

今天的话,主要是用CXF来开发下WebService服务器端接口,明天写下开发客户端接口;

这里用Maven。

首先建一个Maven的j2se项目;

项目的jre用1.8,因为1.8有webservice的默认实现。不要用1.5 不然下面你用我的代码会有问题,用1.5的话,还需要另外加jar包,这里为了大家省事,要换成1.8;

根据规范,我们先建一个接口类:HelloWorld

package com.wishwzp.webservice;

import javax.jws.WebService;

@WebService
public interface HelloWorld {

    public String say(String str);
}

再建一个具体的实现类:HelloWorldImpl

package com.wishwzp.webservice.impl;

import javax.jws.WebService;

import com.wishwzp.webservice.HelloWorld;

@WebService
public class HelloWorldImpl implements HelloWorld{

    public String say(String str) {
        return "hello" + str;
    }

}

最后建一个发布服务的主类:Server

package com.wishwzp.webservice;

import javax.xml.ws.Endpoint;

import com.wishwzp.webservice.impl.HelloWorldImpl;

public class Server {

    public static void main(String[] args) {
        System.out.println("web service start");
        HelloWorld implementor = new HelloWorldImpl();
        String address = "http://192.168.0.110/helloWorld";
        Endpoint.publish(address, implementor);  // JDK实现   暴露webservice接口
        System.out.println("web service started");
    }
}

这里的Endpoint是Jdk自身实现的WebService。所以到这里我们不需要用到CXF的任何东西。

这里的address,写上自己的本机IP

我们运行下Server类:

运行效果如下:

我们在浏览器里访问:http://192.168.0.110/helloWorld?wsdl

效果:

说明已经成功调用了webservice接口;

这里的wsdl 是 Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。WSDL是Web Service的描述语言,用于描述Web Service的服务,接口绑定等,为用户提供详细的接口说明书。

请求后得到的是一个xml规范文档。是一套规范,后面会具体介绍,任何语言平台技术都可以解析。

下面我们介绍使用CXF来实现webservice接口:

我们先在pom.xml中加入:

<dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-core</artifactId>
        <version>3.1.5</version>
    </dependency>

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>3.1.5</version>
    </dependency>

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http-jetty</artifactId>
        <version>3.1.5</version>
    </dependency>

这里要额外加入jetty,作为webservice发布的服务器。jetty是一个内嵌的web服务器;

我们把Server改下。换成CXF实现:

package com.wishwzp.webservice;

import javax.xml.ws.Endpoint;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.wishwzp.webservice.impl.HelloWorldImpl;

public class Server {

    public static void main(String[] args) {
        System.out.println("web service start");
        HelloWorld implementor = new HelloWorldImpl();
        String address = "http://192.168.0.110/helloWorld";
        //Endpoint.publish(address, implementor);  // JDK实现   暴露webservice接口
        JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
        factoryBean.setAddress(address); // 设置暴露地址
        factoryBean.setServiceClass(HelloWorld.class); // 接口类
        factoryBean.setServiceBean(implementor); // 设置实现类
        factoryBean.create();
        System.out.println("web service started");
        System.out.println("web service started");
    }
}

运行效果和刚才一样,这里就不再重复;

原文地址:https://www.cnblogs.com/wishwzp/p/9910544.html

时间: 2024-11-08 21:33:48

使用CXF开发WebService服务器端接口的相关文章

webservice 之 使用cxf开发WebService服务器端接口

摘要:webservice 不是一种新技术,它是一种跨平台,跨语言的规范,用于不同平台,不同语言开发应用之间的交互. cxf:是java主流的WebService实现框架. 接下来开始 使用cxf开发WebService服务器端接口 1.新建一个maven项目: 2. 项目用jdk1.7(因为1.7有webservice的默认实现)项目结构如: 3. 首先新建接口,HelloWorld.java: package com.wh.webservice; import javax.jws.WebSe

使用cxf开发webservice接口

项目中经常用到开发webservice接口,及调用webService接口.这里讲解如何使用cxf开发webService接口. 一.webservice介绍及理解 webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互.        比如,平台平台淘宝.京东想获取其他快递公司数据接口,需快递公司开放数据接口.       那么 webservice就是出于以上类似需求而定义出来的规范:无需关心对方什么平台上开发以及使用何种语言开发.       只关心调用

利用cxf开发WebService

利用cxf开发WebService 1.什么是CXF Apache CXF =Celtix + Xfire 支持多种协议: ?    SOAP1.1,1,2 ?    XML/HTTP ?    CORBA(Common ObjectRequest Broker Architecture公共对象请求代理体系结构,早期语言使用的WS.C,c++,C#) ?    并可以与Spring进行快速无缝的整合 ?    灵活的部署:可以运行在Tomcat,Jboss,Jetty(内置),IBMWS,Bea

使用CXF开发WebService客户端

前面一讲开发了webservice服务器端接口,今天的话,我们来开发webservice客户端,让大家来体验下过程: 首先建一个Maven项目,项目名字,WS_Client: 然后我们要用CXF给我们提供的工具wsdl2java 来根据请求的url生成客户端代码: wsdl2java工具在CXF开发包里: 开发下载地址:http://cxf.apache.org/download.html 下载二进制包,然后解压到D盘 这里我们看到了wsdl2java命令:当然要用的话,还得配置Path.我们打

WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单

现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了这样的业务要求,需要在.net开发的客户端系统中访问java开发的web系统,这样的业务需求自然需要通过WebService进行信息数据的操作.下面就将我们在开发中摸索的一点经验教训总结以下,以供大家参考. 我们项目的整个架构使用的比较流行的WSH MVC组合,即webwork2 + Spring + Hibernate; 1.首先集成Apacha CXF WebService 到 Spring 框架中; apache

axis2+spring开发webservice服务器端

需求:开发VAC与SP间订购通知接口服务器端(SP端),给定VacSyncService_SPClient.wsdl文件 首先,官网下载axis2-1.6.2-bin.zip和axis2-1.6.2-war.zipaxis2-1.6.2-bin.zip包含axis2的jar包,工具和例子axis2-1.6.2-war.zip包含了axis2的web应用,发布web服务时,将自己的程序以特定文件结构发布到axis2的web应用的service目录中 1.根据wsdl生成服务器端代码解压axis2-

WebService -- Java 实现之 CXF (WebService 服务器端接口)

1. 使用Maven创建一个quickstart项目 2. 引入依赖的Jar包 <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-core</artifactId> <version>3.1.5</version> </dependency> <dependency> <groupId>org.apache.cx

IIdea使用CXF开发WebService

写这篇文章主要是用于增强记忆,而我参考的是这位朋友的随笔,链接如下 http://www.xiaomager.com/415.html 服务端开发过程 1.首先创建一个maven项目,如下图 2.添加项目的依赖包以及设置相关配置 提示:首先介绍一下基础环境 ,开发编译器 intellij idea ,我们的jdk是1.7,tomcat是7,spring使用的是spring4,cxf准备使用3.1.4,这里特别需要说明的是,cxf 3.0以后的版本只能在jdk1.7上使用,如果在1.6使用的话,会

[转] WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单

以下文章来自   http://www.blogjava.net/jacally/articles/186655.html 现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了这样的业务要求,需要在.net开发的客户端系统中访问java开发的web系统,这样的业务需求自然需要通过WebService进行信息数据的操作.下面就将我们在开发中摸索的一点经验教训总结以下,以供大家参考. 我们项目的整个架构使用的比较流行的WSH MVC组合,即webwork2 + Spring