一:发布服务

web.xml<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/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></servlet><servlet-mapping><servlet-name>CXFServlet</servlet-name><url-pattern>/webService/*</url-pattern></servlet-mapping>
import javax.jws.WebService;/*** webservice定义 * 如果不指定targetNamespace 默认为包名称* 例如包名为 com.xx.webservice targetNamespace为 http://webservice.xx.com/*/
@WebService(targetNamespace= "http://sayhello.webservice/")
public interface ISayHelloWebService {public String sayHello(String name);}
webservice实现
import javax.jws.WebService;/*** 如果不指定targetNamespace 默认为包名称* 例如包名为 com.xx.webservice targetNamespace为 http://webservice.xx.com/*/
@WebService(targetNamespace= "http://sayhello.webservice/")
public class SayHelloWebServiceImpl implements ISayHelloWebService {public String sayHello(String name) {return "hello," + name;}
}
Spring 配置为文件
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.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"/><bean id="sayHelloWebService" class="cn.xx.SayHelloWebServiceImpl" /><jaxws:endpoint id="sayHelloWebServiceWS" address="/sayHello"><jaxws:implementor ref="sayHelloWebService" /></jaxws:endpoint>
</beans>

发布服务完成 启动web容器 浏览器查看wsdl文件定义http://localhost:9090/ylnetWebservice/webService/sayHello?wsdl

二:客户端 调用webservice

import javax.jws.WebService;/*** 客户端*/
@WebService(targetNamespace= "http://sayhello.webservice/")
public interface ISayHelloWebServiceClient {public String sayHello(String name);}
public class SayHelloClientWS extends BaseWebService {protected ISayHelloWebServiceClient getWebService() {return (ISayHelloWebServiceClient) getWebService(ISayHelloWebServiceClient.class);}public String sayHello(String name) {return getWebService().sayHello(name);}
}
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;public abstract class BaseWebService {private String host;private String address;private JaxWsProxyFactoryBean getJaxWsFactory(Class<?> clazz){JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();System.out.println(getWebServiceAddress());factory.setAddress(getWebServiceAddress());factory.setServiceClass(clazz);return factory;}protected abstract Object getWebService();/*** TODO 可以考虑在此缓存* <br>------------------------------<br>* @param clazz* @return*/protected Object getWebService(Class<?>  clazz)  {return getJaxWsFactory(clazz).create();}protected String getWebServiceAddress() {return getHost() + getAddress();}/*** 获得host* @return the host*/public String getHost() {return host;}/*** 获得address* @return the address*/public String getAddress() {return address;}/*** 设置host* @param host the host to set*/public void setHost(String host) {this.host = host;}/*** 设置address* @param address the address to set*/public void setAddress(String address) {this.address = address;}
}
  public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-client.xml");SayHelloClientWS sayHelloClientWS = applicationContext.getBean("sayHelloClientWS", SayHelloClientWS.class);System.out.println(sayHelloClientWS.sayHello("张三"));}
applicationContext-client.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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="sayHelloClientWS"   class="cn.soaringstar.ylnet.webservice.SayHelloClientWS" ><property name="host"         value="http://localhost:9090/ylnetWebservice/webService/" /><property name="address"    value="sayHello" /></bean></beans>

转载于:https://www.cnblogs.com/yangjin-55/archive/2012/04/27/2786554.html

Spring 整合 CXF相关推荐

  1. Spring整合CXF,发布RSETful 风格WebService

    这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述了.如果你对Spring整合CXF ...

  2. spring整合CXF

    CXF也就是用于发布接口的webservice的框架. 发布服务:使用spring和cxf整合的标签<jaxws:server 客户端发布服务:使用springcxf整合的标签<jaxws ...

  3. spring整合cxf开发rest风格的webservice接口(客户端服务端)

    前面文章记录了在spring中如何整合cxf开发webservice客户端和服务端,其实,相较于原生开发方式,已经有了不少优化.rest风格的开发,作为一种极为流行的开发规范,可以帮助我们更加简洁高效 ...

  4. Spring整合CXF webservice restful 实例

    webservice restful接口跟soap协议的接口实现大同小异,只是在提供服务的类/接口的注解上存在差异,具体看下面的代码,然后自己对比下就可以了. 用到的基础类 User.java [源码 ...

  5. spring整合cxf,轻松编写webService客户端、服务端

    WebService是一种跨编程语言.跨操作系统平台的远程调用技术,广泛应用在实际开发,接口实现,系统集成. 服务端 List item 添加maven依赖 项目中除了spring相关的依赖以外,还需 ...

  6. Spring和CXF整合发布WebService(服务端、客户端)

    参考Spring和CXF整合发布WebService(服务端.客户端) 转载于:https://www.cnblogs.com/timspace/p/11113576.html

  7. spring与cxf的整合

    1.倒入cxf所需要的包(其中包括spring的支持) 2.编写SEI与服务 package cn.itcast.ws.pojo; import java.util.Date; public clas ...

  8. spring boot整合cxf发布和调用webservice

    一.前言 说起web service最近几年restful大行其道,大有取代传统soap web service的趋势,但是一些特有或相对老旧的系统依然使用了传统的soap web service,例 ...

  9. 【webservice】spring整合webservice RS风格

    [webservice]spring整合webservice RS风格 UserService package cn.zxl.cxf.service;import java.util.List;imp ...

最新文章

  1. 企业分布式微服务云SpringCloud SpringBoot mybatis (九)服务链路追踪(Spring Cloud Sleuth)...
  2. PLSQL_性能优化系列04_Oracle Optimizer优化器
  3. DirectX 9的坐标系统变换
  4. 心得体悟帖---14、没有自己精品项目永远是个弟弟
  5. NEO从源码分析看NEOVM
  6. Solaris的硬件相关命令
  7. [css] 判断如下边框的颜色,并解释为什么[代码]?
  8. mysql快速启动_GitHub - TianSiQiang/Spring-Boot-MyBatis-Mysql: Spring Boot+MyBatis+Mysql 快速启动示例...
  9. java制造null异常_Java中NullPointerException的完美解决方案
  10. 13款宝马x5质量到底怎么样_2020款宝马X5价格新变化 都市越野绝佳之选_搜狐汽车...
  11. 如何快速转载CSDN博客(详细)
  12. java rcp教程_Eclipse RCP教程 - 13 - 练习:创建Eclipse RCP程序 | JavaFX中文资料
  13. 大型IT项目策划和管理关键点
  14. Python 四阶龙格库塔法求积分
  15. Apache + svn 服务搭建
  16. 计算机博士、加班到凌晨也要化妆、段子手……IT 女神驾到!
  17. k-nearest neighbors algorithm - k 最近邻算法
  18. 计算机本地连接没有有效ip配置,本地连接没有有效的ip配置怎么解决
  19. 华为Android10怎样root,华为M2平板10.0怎么ROOT 华为M2超级权限图文教程
  20. Web前端开发主要做什么

热门文章

  1. mysql php commit_php mysqli_autocommit()使用实例
  2. mysql peferences_MySQL初次实践
  3. Android 使用 ActivityResult 处理 Activity 之间的数据通信及调起拍照实例
  4. R-CNN系列学习笔记
  5. bapi sap 创建物料_SAP使用BAPI创建物料主数据的最小输入-阿里云开发者社区
  6. 排序 np_干货 | XGBoost在携程搜索排序中的应用
  7. java enum 返回list_java – 组合枚举并使用getter返回指定的枚举
  8. .net core 文件流保存图片_使用JSDelivr加速Github、博客文件
  9. python3 format函数_Python学习教程:Python3之字符串格式化format函数详解(上)
  10. 云计算的三种服务模式:IaaS,PaaS,SaaS