使用cxf做webservice接口调用

一、服务端

建javaweb工程,去官网下载所需的cxf接口发布的jar包,导入到工程。官网地址:http://cxf.apache.org/download.html

1、建立调用接口

package com.ymx.cxf.server;

import javax.jws.WebService;

@WebService
public interface UserService {

    User getUser(String name);
}

2、实现接口

package com.ymx.cxf.server;

import javax.jws.WebService;

@WebService
public class UserServiceImpl implements UserService {

    @Override
    public User getUser(String name) {
        User user = new User();
        user.setName(name);
        user.setAge(22);
        return user;
    }

}

3、配置web.xml

<?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" 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>cxfserver</display-name>

  <!-- cxf服务启动servlet -->
  <servlet>
      <servlet-name>CXFServlet</servlet-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>/cxf/*</url-pattern>
  </servlet-mapping>

  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-cxf.xml</param-value>
  </context-param>
  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

4、配置spring-cxf.xml,发布接口

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

    <!-- 引入CXF配置文件,低版本还需引入其他两个文件 -->
    <import resource="classpath:META-INF/cxf/cxf.xml" /> 

    <!-- 配置方式    注意:implementor为接口的具体实现类 -->
    <jaxws:endpoint implementor="com.ymx.cxf.server.UserServiceImpl" address="/user" ></jaxws:endpoint>

</beans>

5、使用tomcat发布工程,访问发布的cxf接口的地址

  http://10.50.10.52:8080/cxfserver/cxf/user?wsdl

  cxfserver发布的工程名,cxf为配置在web.xml中的url-pattern里面的值,user为配置在spring-cxf.xml中的address。

二、客户端

1、进入解压后cxf文件下的bin目录,使用wsdl2java命令生成客户端代码。

  

  -p  指定其wsdl的命名空间,也就是要生成代码的包名;

  -d  指定要产生代码所在目录;

  -client 生成客户端测试web service的代码;

2、把生成的客户端代码导入工程内,调用服务端代码如下:

package com.ymx.cxf.client;

import javax.xml.namespace.QName;

/**
 * This class was generated by Apache CXF 2.5.9
 * 2017-05-20T10:27:29.544+08:00
 * Generated source version: 2.5.9
 *
 */
public final class UserService_UserServiceImplPort_Client {

    private static final QName SERVICE_NAME = new QName("http://server.cxf.ymx.com/", "UserServiceImplService");

    public static void main(String args[]) throws Exception {

        UserServiceImplService ss = new UserServiceImplService(UserServiceImplService.WSDL_LOCATION, SERVICE_NAME);
        UserService port = ss.getUserServiceImplPort();  

        String name = "test";
        User result = port.getUser(name);
        System.out.println("getUser.result= " + result.getName() + " : " + result.getAge());
    }
}

时间: 2024-08-28 17:35:17

使用cxf做webservice接口调用的相关文章

loadrunner做webservice接口之简单调用

今天听大神讲了webservice做接口,我按照他大概讲的意思自己模拟实战了下,可能还有很多不对,一般使用webservice做接口,会使用到soapui,但是用了loadrunner以后发现lr很快捷和简单,如下: 准备webservice测试接口,我用的是天气预报的接口,地址:http://ws.webxml.com.cn/  天气预报接口地址:http://ws.webxml.com.cn/webservices/DomesticAirline.asmx?wsdl,地址可以打开就能看到他的

EJBCA开发 webService接口调用

<转载请注明出处> 摸索这个东西好长时间了,资料太少无从下手找了个EJBCA的类似论坛的东西 一点点找入口..... 分享下:http://sourceforge.net/p/ejbca/discussion/132019/,有问题 里面的人很快会回答的,但是 他们是做盈利机构的有些问题.. EJBCA SVN路径:https://svn.cesecore.eu/svn/ejbca/tags/Rel_3_9_7/ejbca   这是3的版本 有其他的自己找吧. 一.先介绍下接口调用: EJBC

使用cxf开发webservice接口

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

使用CXF做webservice整合现有项目的例子

从网上看了很多CXF的资料,大部分都是单独的作为一个webservice项目,对于在现有的spring项目上提供webservice服务的例子基本没有找到. 我做的这个例子是介绍怎么把cxf整合到现有的spring项目中,现在只做到可以传简单的字符串和JAVABEAN,复杂的以后研究.       这是例子的下载地址:一个简单的CXF例子      一,应用cxf应该先把该服务所需要的架包加载进项目中. 对于一个已经搭建好的spring项目,我做的项目中所缺少的架包是 cxf-2.4.3.jar

spring mvc + mybaties + mysql 完美整合cxf 实现webservice接口 (服务端、客户端)

spring-3.1.2.cxf-3.1.3.mybaties.mysql 整合实现webservice需要的完整jar文件 地址:http://download.csdn.net/detail/xuxiaoyu__/9868032 整合的过程其实很简单,通过简单的配置就可以,但是可悲的是 一堆问题都是由于jar缺失或者jar版本冲突引起的,所以附上全部jar文件 ↑↑↑ 发布webservice服务: 第一步:编写接口和实现类 PlcDataDetail.java 1 package test

WebService 接口调用指南

客户端开发步骤(java): 本例展示如何在Eclipse 环境下使用Axis2创建WebService客户端. 一. 环境准备(如果你已具备Axis2开发环境,跳过本步骤) 1.  Axis2 API包 本例使用的Axis2版本是1.4,请到以下地址下载:http://apache.mirror.phpchina.com/ws/axis2/1_4/axis2-1.4.1-bin.zip下载后将压缩包解压缩到任意目录.如果你希望直接使用Axis2 API进行开发,可能会需要这个包. 2.  Ax

学习总结——JMeter做WebService接口功能测试

用JMeter作WebService接口功能测试(可以借助SoapUI来完成) SoapUI里面的操作: Wsdl文件或链接导入或添加到SoapUI打开待测请求:运行请求:取URL  SOAPAction .报文. JMeter里面的操作: 为线程组添加SOAP/XML-RPC Rquest ,右击线程组添加->Sampler->SOAP/XML-RPC Rquest: 把从SoapUI获取的信息粘贴到相应位置: 发送请求并查看结果.

使用 CXF 做 webservice 简单例子[转]

Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量级容器中,以及部署在更高级的服务器上,例如 Jboss.IBM® WebSphere® 或 BEA WebLogic. 该框架提供了以下功能: Web 服务标准支持:CXF 支持以下 Web 服务标准: Java API for XML Web Services (JAX-WS) SOAP Web

cxf做webservice所需最少jar包

今天做对接cxf服务端的接口,从来没搞过,找了半天方法总是报错.去下载官网的2.7版本然后把所有jar包都关联进去还是报错,灰心死!然后发现同事之前写过的类上面有注释所需jar包,试了一下可以了,版本比较老. cxf-2.0.5-incubator.jar jaxb-impl-2.2.1.jar wsdl4j-1.6.2.jar xml-resolver-1.2.jar XmlSchema-1.4.5.jar 当然这些是根据现有工程正在使用的版本为准,比网上提供的那些简单方便多了!这些包可能不好