cxf+spring发布webservice和调用

项目所需jar包:http://files.cnblogs.com/files/walk-the-Line/cxf-spirng.zip

首先写一个demo接口

package cn.cxf.demo;

import javax.jws.WebService;

@WebService
public interface Demo {
    String sayHi(String text);
}

然后就需要它的实现类

targetNamespace 是指向接口的包路径

package cn.cxf.demo.impl;

import javax.jws.WebService;

import cn.cxf.demo.Demo;
@WebService(endpointInterface="cn.cxf.demo.Demo", serviceName="DemoService", targetNamespace="http://demo.cxf.cn/")
public class DemoImpl implements Demo {

    @Override
    public String sayHi(String text) {
        return "Hi ! " + text;
    }

}

在src目录下添加applicationContext.xml

<?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="demoService"
        implementor="cn.cxf.demo.impl.DemoImpl"
        address="/DemoService" />

</beans>

再修改下web.xml文件就搞定了~(在web.xml添加如下内容就可以了)

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <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>/ws/*</url-pattern>
  </servlet-mapping>

发布一下,访问 http://localhost:8080/cxfdemo/ws 就可以看到接口已经发布成功了。

调用接口就更简单了

如果只是单纯的调用接口的话只需要4个jar包就可以了:

cxf-2.4.3.jar

neethi-3.0.1.jar

wsdl4j-1.6.2.jar

xmlschema-core-2.0.1.jar

可以从上面的jar包里挑选。

调用代码如下:

package cn.cxf.test;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

public class CXFWSTest {
    public static void main(String[] args) throws Exception {
        JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
        Client client = factory.createClient("http://localhost:8080/cxfdemo/ws/DemoService?wsdl");
        Object[] objs = client.invoke("sayHi", "阿福");
        System.out.println(objs[0].toString());
    }
}
时间: 2024-10-14 18:40:14

cxf+spring发布webservice和调用的相关文章

webService总结(三)——使用CXF + Spring发布webService

近些年来,Spring一直很火,许多框架都能跟Spring完美集成,CXF也不例外.下面,我就介绍一下如何使用CXF + Spring发布webService.我们还是使用前两篇博客使用的实例. 服务端: 目录结构: 这里需要的所有Spring的包,CXF的lib目录下都有. IHelloWorldServer代码: package com.test.server; import javax.jws.WebService; @WebService public interface IHelloW

webService总结(二)——使用CXF手动发布webService(不使用Spring)

上篇博客:webService总结(一)--使用CXF发布webService(不使用Spring) 介绍了不使用Spring自动发布webService,这篇博客介绍第二种方法--使用CXF手动发布webService(不使用Spring). CXF自动发布webService,我们使用的是Tomcat服务器.而使用CXF手动发布webService我们不再使用Tomcat,取而代之的是内嵌的jetty服务器.其实,jetty跟Tomcat并没有本质的区别,只是表现的形式不同,使用方法不同.既

spring,cxf,restful发布webservice传递List,Map,List&lt;Map&gt;

上一篇文章中概述了怎么在Javaweb中发布webservice,这篇文章讲解怎么传递复杂的对象 所用的jar包如下 当服务器返回的是List或者是Map时,一定要将其封装在一个类中, 首先创建封装类,封装了List,Map对象,以及自定义的User类 User.java public class User { private String name; private int age; public User() { } public User(String name, int age) { t

Spring+CXF+Maven发布Webservice

使用CXF发布WebService简单又快速,还可以与Spring集成,当Web容器启动时一起发布WebService服务.本例是简单的客户端给服务端发送订单信息,服务端返回订单转为json的字符串. 1.使用maven管理jar包,首先在maven添加使用到的cxf jar包依赖,到CXF官网上找到Maven的依赖内容. 网址如下:http://cxf.apache.org/docs/using-cxf-with-maven.html 我使用的是Tomcat所以引用前两项就可以了 <depen

Spring整合CXF之发布WebService服务

今天我们来讲下如何用Spring来整合CXF,来发布WebService服务: 给下官方文档地址:http://cxf.apache.org/docs/writing-a-service-with-spring.html 根据官方文档.我们把前面的实例用Spring整合CXF来处理下.会简化很多: 首先我们来建一个Maven项目 WebService_CXF 建好项目第一步,我们打开pom.xml 我们来添加下Spring支持: <!-- 添加Spring支持 --> <dependen

CXF+Spring搭建WebService

WebService: WebService 是一套标准,而不是一种具体的技术.不同的平台,不同的语言,大都提供了对 WebService 的开发实现. 从表面上看,Webservice 就是一个应用程序,它向外界暴露出一个能够通过 Web 进行调用的 API .也就是说,可以利用编程的方法通过 Web 来调用这个应用程序. 对 Webservice 更精确的解释 : Webservice 是建立可互操作的分布式应用程序的新平台.Webservice 平台是一套标准,它定义了应用程序如何在 We

CXF2.7整合spring发布webservice

---------==========--服务端发布webservice-=============-------- 1.需要的jar包: 2.包结构 3.代码 1.实体类 package cn.qlq.domain; public class User { private String username; private String password; public String getUsername() { return username; } public void setUserna

CXF+Spring实现WebService

  接口类: import javax.jws.WebService; @WebService public interface CxfService { public String putName(String uname); } 接口实现类: import javax.jws.WebService; import com.cxf.dao.CxfService; @WebService public class CxfServiceImpl implements CxfService { pu

发布WebService及调用WebService方法Demo

打开vs2012(这里为什么强调版本,因为vs2012不支持右键添加Web引用). 创建一个“ASP.NET空Web应用程序” 创建好项目之后,在解决方案中么,创建“Web服务”. 创建好了之后,添加自己定义的方法: 这里,我就不强调了[WebMethod] 特性的重要性. [WebMethod] public string HelloWorld() { return "Hello World"; } /// <summary> /// 自定义的方法 /// </su