webservice CXF入门图解 附实例源码

CXF实现WebService(完整源码可运行) 阅读详情

第一部分 webservice快速概览

Webservice是基于WEB的系统级接口规范,它是一种标准,而不是一种技术,它的特点是:

1 一个普遍适用标准。2 任何网络通信的操作系统。3自包含、自描述、模块化。4 发布、定位、通过web调用

Java早期就有RMI(远程对象调用接口)技术,但必须遵循J2EE的标准,java和java之间是可以继承的。

.NET是com组件去集成,微软平台下的集成。

Jax-ws(jax-rpc)基于soap协议,底层支持三JAXB。

Jax-rs()是java针对REST(Representationstate Transfer)风格制定的web服务规范,基于http协议。

狭义的WebService主要指RPC式

 

JAVA服务规范

API包

JAX-RPC

Javax.xml.rpc.*

JAX-WS

Javax.xml.ws.*

JAX-M

Javax.messaging.*

SAAJ

Javax.xml.soap.*

JAX-RS

Javax.ws.rs.*

 

怎么运作的?

UDDI发现服务 -----WSDL自描述文件--------基于SOAP简单对象传输协议------XML+XSD包装------通过HTTP请求---找到TCP/IP指定的服务器

 



简单的server端程序

public classRunDiscount {
    public static void main(String[] args) {
       //被封装后的启动程序
       //Endpoint.publish("http://127.0.0.1:8080/discount",new DiscountServiceImpl());
      
       //通过JaxWsServerFactoryBean设置详细参数
       JaxWsServerFactoryBeanjpfb = newJaxWsServerFactoryBean();
       jpfb.setAddress("http://127.0.0.1:8080/discount");//设置服务器地址
       jpfb.setServiceClass(DiscountServiceImpl.class);//服务的提供者(实现类)
       jpfb.getInInterceptors().add(newLoggingInInterceptor());//插入日志(入口)
       jpfb.getOutInterceptors().add(newLoggingOutInterceptor());//插入日志(出口)
       jpfb.create();//启动
    }
}
@WebService
public interfaceDiscountService {
   
    @WSDLDocumentation(value="根据会员号获取折扣")
    public double getDiscount(StringNum);
}

简单的client端程序

通过wsdl2java 获取服务到client端

找到CXFHOME/BIN 通过wsdl2java –p 包名–d 本地保存地址–encoding 编码设置

Eg:

wsdl2java –pcom.boray.ws –d c:\demo –encoding utf-8 http://127.0.0.1:8080/discount

通过命令就可以在本地c盘下面的demo里找到提供服务的所有类。然后放到项目里。

public classDiscountClient {
    public static void main(String[] args) {
       JaxWsProxyFactoryBeanjpfb = newJaxWsProxyFactoryBean();
       //服务地址
       jpfb.setAddress("http://127.0.0.1:8080/discount");
       //具体提供方法的接口
       jpfb.setServiceClass(DiscountService.class);
       //获取接口
       DiscountServiceds = (DiscountService)jpfb.create();
       //执行方法
       System.out.println(ds.getDiscount("1000"));
    }
}

第二部分JAXB

JAXB(JAVA Architecturefor XML binding)是业界的一个标准,是基于XML Schema 与 java 对象绑定的一种技术。



1. schema 编译器

2. schema 生成器

3. JAXB 运行环境

schema 编译器:schema 编译器以 XMLschema 为输入生成和schema 相对应的Java 类集,生成的Java 类中会根据schema 的结构自动包含了相应的JAXB 注解。
比方说 schema 里的一个元素映射的Java 类会自动用@XmlType 注解加以标注,一个元素的属性所映射的Java 字段会自动用@XmlElement 注解加以标注

schema 生成器:schema 生成器以包含 JAXB 注解的 Java 类集为输入生成相应的 XMLschema。比方说一个包含@XmlType 注解的Java 类在生成的
schema 中会被映射为一个元素;

JAXB 运行环境:JAXB 运行时环境提供了两个基本的操作用于 XML 文档的访问,操作以及验证等等:marshal、unmarshal,这两个操作也是XML 和Java 绑定的基础。Marshal 是指将一个内存对象以XML 文档形式进行编组处理的过程,unmarshal 则是一个相反的过程,将一个XML 文档解析为内存对象的过程。

从Java 到XML schema 的映射开发者可以通过JAXB 提供的注解来完成,在编程Java 类时可以使用JAXB 丰富的注解轻松地完成绑定定制。

 

在数据绑定和数据接受处理的过程中,需要对java对象进行编组和解组,也就是JAVA对象和XML互转。传递数据的过程中需要marshaller对java对象进行编组成XML传递。而在XML接收到之后需要通过ummarshaller对xml进行解组得到java对象。

l  编组(Marshalling)是把内存中的数据转化到存储媒介上的过程。Java 和XML 环境中,编组就是把一些Java 对象转化成一个(或多个)XML 文档

l  解组(Unmarshalling) 是把数据从存储媒介转换到内存中的过程--正好与编组相反。因此需要把 XML 文档解组到Java VM 中。

 

JAXB的相关注解元素

}  @XmlRootElement 注解用于标注类或枚举类型,用它标注的类在映射后的schema 中会以一个全局元素的形式出现

}  参数:

◦      name 定制映射的 schema 全局元素的名称,一般来说以 @XmlRootElement标注的类在相应的XML 文档中会以最外层或根节点形式出现。

namespace 定义这个根节点命名空间,XML元素的名称空间名

}  @XmlAccessorType 定义映射这个类中的何种类型需要映射到XML。

}  可接收四个参数,分别是:

◦      XmlAccessType.FIELD:映射这个类中的 private非静态所有字段到XML

◦      XmlAccessType.PROPERTY:映射这个类中的属性(get/set方法)到XML

◦      XmlAccessType.PUBLIC_MEMBER:将这个类中的所有public的field或property同时映射到XML(默认)

◦      XmlAccessType.NONE:不映射
例如:@XmlAccessorType(XmlAccessType.FIELD)
@XmlAccessorType(value = XmlAccessType.PROPERTY)

}  @XmlType 注解用于标注类或枚举类型,用它标注的类在映射后的 schema 中中会以一个XML 复杂数据类型的形式出现

}  参数:

◦      propOrder 指定映射XML时的节点顺序,来指定输出顺序,来定制映射后的复杂数据类型的内容顺序

◦      factoryClass 指定UnMarshal时生成映射类实例所需的工厂类,默认为这个类本身

◦      factoryMethod 指定工厂类的工厂方法

◦      name 定义XML Schema中type的名称,定制映射的 XML数据类型的名称

◦      namespace 指定Schema中的命名空间

 

xml to wsdl

}  下载Trang

◦      http://www.thaiopensource.com/relaxng/trang.html

}  XML -> XSD    trang.jar

◦      java -jar   trang.jar  源.xml    目标.xsd

}  XSD ->  WSDLxsd2wsdl.bat 

◦      冗余步骤,CXF无直接XSDtoJava

◦      xsd2wsdl -d 输出目录 -t 目标.xsd 目标.xsd<XSD-URL>

◦      WSDL -> Java   wsdl2java

◦      wsdl2java -p 包名 –d 本地保存路径 源.wsdl<URL-路径>

 

第三部分 CXF   (JAX-WS)

}  在SOAP 中方法的参数是有流向的

}  @WebParam 注解中的mode 属性

◦      javax.jws.WebParam.Mode 枚举

◦      IN(默认),OUT、INOUT 类型

}  如果是OUT、INOUT 类型的参数类型,客户端生成代码时会被变为javax.xml.ws.Holder<T>类型

}  方法参数将会被当做返回值在Web服务调用完成后返回给客户端

}  注意不要导错包,不是javax.xml.rpc.Holder类型(JDK1.6 已经没有这个类型,但是MyEclipse 还有

}  @javax.jws.Oneway 指定该方法只具有输入参数,但无返回值,不允许抛出非运行时异常。

◦      此批注必须只与@WebMethod 批注一起使用

}  如果条件不符JAX-WS 规范要求应该报告错误

}  但CXF 的策略是:

◦      如果方法存在返回值,生成客户端时将被改为void;

◦      如果方法参数含有OUT 类型,生成客户端时将被忽略;

◦      如果方法含有INOUT类型参数,生成客户端时将只作为IN 类型参数被保留

}  javax.xml.ws.WebServiceContext 接口用于在Web 服务实现类中访问与服务请求有关的消息上下文和安全信息

◦      使用javax.annotation.Resource 标准注解启用这个接口

◦      EJB 等JAVA EE规范中的一些资源都使用这个注解注入

}  接口的getMessageContext()方法返回javax.xml.ws.handler.MessageContext接口,这是一个实现了Map 接口的接口,它包含了一组属性集

}  服务端发布Web 服务可以使用javax.xml.ws.Endpoint接口发布Web 服务,

}  这样可以在开发JAX-WS的服务端时完全避开使用底层实现的API,统一使用标准的JAX-WS 的接口、注解等

}  但是在客户端访问Web 服务时我们使用了CXF 的JaxWsProxyFactoryBean来进行操作

◦      其实也可以使用标准的JAX-WS 的API 完成客户端调用

}  JAX-WS 中的服务端的自定义异常使用javax.xml.ws.WebFault 注解来完成,这样的异常会在WSDL 文件中的<wsdl:operation …中的子元素生成<wsdl:fault …

}  MTOM(SOAP Message Transmission Optimization Mechanism)SOAP 消息传输优化机制,可以在SOAP消息中发送二进制数据,与SAAJ 传输附件不同,MTOM需要XOP(XML-binaryOptimized Packing)来传输二进制数据

}  MTOM 允许将消息中包含的大型数据元素外部化,并将其作为无任何特殊编码的二进制数据随消息一起传送

}  MTOM 消息会打包为多部分相关MIME 序列,放在SOAP 消息中一起传送

}  MTOM已经得到了大多数厂商的支持,包括微软等,所以使用这种方式处理SOAP 中的附件,可以获得较大的通用性。

CXF  (JAX-RS)

}  REST 是一种软件架构模式,是基于HTTP协议的软件架构

}  REST 中重要的两个概念就是资源定位和资源操作

}  资源定位      URL

}  资源操作      HTTP(GET,POST,PUT,DELETE)

数据传输

资源定位

资源操作

RPC

HTTP

SOAP

SOAP

REST

HTTP

HTTP

HTTP

 

 

 

 

}  REST 是一种软件架构理念,被移植到Web 服务

}  在开发Web 服务上,偏于面向资源的服务适用于REST,偏于面向活动的服务适用于SOAP

}  REST 简单易用,效率高,SOAP 成熟度较高,安全性较好

}  JAX-RS标准是将REST设计风格应用到Web 服务

}  JAX-RS(Java API for RESTful Web Service,JSR-311)是Java提供用于开发RESTfulWeb服务基于注解(annotation)的API

}  Java EE 6中发布,旨在定义一个统一的规范,在javax.ws.rs.*包中,其中大部分也是注解

}  同时JAX-RS使用POJO编程模型和基于注解的配置并集成JAXB,有效缩短了REST应用的开发周期

}  JAX-RS定义的包结构如下,包含近五十多个接口,注解和抽象类:

}  javax.ws.rs:包含用于创建RESTful服务资源的高层次(High-level)接口和注解;

}  javax.ws.rs.core:包含用于创建RESTful服务资源的低层次(Low-level)接口和注解;

}  javax.ws.rs.ext:包含用于扩展JAX-RS API支持类型的APIs;

}  JAX-RS规范只是定义API,真正开发RESTful Web服务需要引入具体实现,具体实现由第三方提供

}  如Sun的参考实现Jersey,ApacheCXF,Jboss RESTEasy;

}  RESTful Web Services Java API (JAX-RS)

}  JAX-RS为在Java中构建RESTful Web服务提供了标准化API

}  API提供了一组注解

}  API提供相关的类和接口

}  对POJO应用注解允许你暴露Web资源

}  在JAX-RS中,一个Resource类代表一个网络资源,对该网络资源的任何请求被Resource类中定义的方法处理

}  在Java中,一个Resource是一个POJO类,其中的方法至少有一个被@Path或HTTP方法指示器(如@GET,@POST,@PUT,@DELETE,@OPTIONS)标注;

}  @Path注解指定了资源的相对路径

}  类资源URI是基于应用程序上下文的

}  例如:

}  @Path(/items)

}  如果应用程序上下文在这个例子中是http://example.com,

}  那么类资源的URI就是http://example.com/items

}  @Produces 用于服务方法描述上

}  用于指定返回值的类型

}  例如:

}  application/xml、application/json、image/jpeg 等)

}  @Produces(“application/xml”) 返回XML

}  默认值是*/*   CXF 默认返回的是JSON 字符串

}  @QueryParam 注解用于指定将URL 上的查询参数传递给使用这个注解的属性值;

}  @PathParam 注解用于指定将URL 上的路径参数作为使用这个注解的属性值。

}  查询参数  url?key=value

}  路径参数  @Path(/items/{变量名})

}  @Path 的变量可以使用符合正则表达式“[^/]+?”

}  例如:

}  @Path("users/{username: [a-zA-Z][a-zA-Z_0-9]}")

}  @Produces 用于指示一个资源类(或服务接口)或者MessageBodyWriter 可以产出的MIME 类型

}  @Consumes 用于指示资源类(或服务接口)或者MessageBodyReader 可以接受的MIME 类型

}  例如:

}  @Produces(“application/xml”)

}  @Produces("application/json")

}  Response 接口返回Http 的响应代码、响应头或者是一种实体

}  javax.ws.rs.ext.MessageBodyWriter 类负责marshall 响应实体,响应实体被直接输出(自定义类型)或者是作为Response 的一部分

}  javax.ws.rs.ext.MessageBodyReader 类负责Unmarshall 响应实体,也就是读取实体

}  JAX-RS 中你有如下三种方式处理异常

}  直接使用Response 返回HTTP 响应代码,例如:400、500 等表示错误的响应代码。

}  将异常或错误代码包装为javax.ws.rs.WebApplicationException

}  throw new WebApplicationException(new MyException(“***”)); // 这是一个运行时异常

}  将异常转换为响应结果

注解

描述

例子

@QueryParam

查询参数

@PathParam

路径参数

@MatrixParam

获取Martix 参数

info2/matrix;id=2;name=m.j

getStudent(@MatrixParam("") Student student);

@FormParam

POST 提交参数

@HeadParam

HTTP 请求头参数

@CookieParam

Cookie 参数

@DefaultValue

前六个注解未取到值时默认值

@Encoded

禁用前四种注解自动解码

}  CXF WebClient 提供便捷的调用方案

}  XML | json  转换  Object

 

看完此文应该基本还是不明白,那就download这两个程序源码研究一下吧。希望有帮助

源码一:webservice实例 CXF的JAXWS和JAXRS实现 及JAXB标准接口实现带jar包 点击下载

源码二:webservice spring与CXF结合实现 实例和jar包都有 点击下载

 

CXF-04: CXF 的本质,解析 WSDL 文档 调用一次Web Service的本质: 1.客户端把调用方法参数,转换XML文档片段————该文档片段必须符合WSDL定义的格式; 2.通过网络,把XML文档片段传给服务器; 3.服务器接收到XML文档片段; 4.服务器解析XML文档片段,提前其中的数据,并把数据转换为调用Web Service所需的参数值; 5.服务器执行方法 6.把执行方法得到的返回值再次转换生成XML文档片段(SOAP消息)—— 阅读详情

相关推荐

CXF实例源代码(客户端)

CXF实例源代码 客户端调用 web service 入门教程

Spring 基础知识、执行流程、源码分析和设计思想

目录 Spring 基础 Spring 体系结构 Core (IoC & DI) Bean AOP; Spring Boot 原理解析和 SpringApplication 执行流程; spring-boot-starter 原理; 手写一个 starter;手写 Spring 核心代码

保持初心 保持好奇 785

使用CXF实现WebService(源代码+jar包+文档说明讲解)

使用CXF实现WebService 资料中附有源代码+jar包+文档说明讲解 /** * @Desc:CXF-WebService服务端接口 * @Author:张轮 * @Date:2014-1-16下午07:44:49 */ @WebService(name="IUserService") public interface IUserService { /** * @Desc:只是接收输入参数,返回一个动态字符串 * @Author:张轮 * @Date:2014-1-16下午07:44:49 * @param userName 输入参数-名称 * @return 处理之后的字符串 */ @WebMethod(operationName="sayUserName") public @WebResult(name="String")String sayUserName(@WebParam(name="userName")String userName); //webService开放接口类 IUserService implementor = new UserServiceImpl(); //这就是webService的访问地址,WSDL地址为:http://127.0.0.1:8080/MyCXFService/ws?WSDL String address = "http://127.0.0.1:8080/MyCXFService/ws"; //发布 Endpoint.publish(address, implementor); JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(IUserService.class); factory.setAddress("http://127.0.0.1:8080/MyCXFService/ws"); IUserService iUserService = (IUserService) factory.create(); String resultData=iUserService.sayUserName("张三"); System.out.println("webService服务端返回结果是:"+resultData);

CXF动态客户端的一些原理性知识总结

所谓的CXF动态客户端,是不需要使用wsdl2java工具去我们的源码里生成java客户端存根代理而已,但是实际上也是需要生成的,这个在CXF的类DynamicClientFactory原来里是可以看到的,方法: public Client createClient(String wsdlUrl, QName service, ClassLoader classLoader, QName port

坐忘峰 4411

WebService源码

WebService源码,WebService获取手机归属地查询

WebService完整实例代码

WebService完整实例代码。本人亲自编写,100%正常运行含代码注释,适合入门人群,欢迎下载!

最新尚硅谷WebService技术讲解教程(完整)

课程目录 01_WebService_Schema复习.avi 02_WebService_HTTP协议复习.avi 03_WebService_关于WebService的几个问题.avi 04_WebService_WebService中的几个重要术语.avi 05_WebService_使用JDK开发WebService.avi 06_We...

d2382002551的博客 953

新手必看:如何用R/qtl快速完成QTL定位分析(附实战代码)

本文为新手提供了使用R/qtl进行QTL定位分析的完整实战指南。内容涵盖从环境搭建、数据准备与清洗,到核心分析流程(包括遗传图谱计算、单QTL扫描、置换检验确定阈值)以及进阶结果可视化的全步骤。通过清晰的代码示例,帮助读者快速掌握这一数量遗传学关键分析技术,实现从数据到QTL峰值的完整分析闭环。

y7z8a的博客 501

WebService技术讲解(尚硅谷)

课程目录 01_WebService_Schema复习.avi 02_WebService_HTTP协议复习.avi 03_WebService_关于WebService的几个问题.avi 04_WebService_WebService中的几个重要术语.avi 05_WebService_使用JDK开发WebService.avi 06_WebService_...

w2215的博客 501

腾讯、飞书等在线表格自动化编辑--python

在线文档自动化处理数据

qq_32828053的博客 2万+

缺陷检测:使用PatchCore训练自己的数据集

必须包含有训练图片(无缺陷图片)、测试图片(缺陷图片)和ground_truth,并且ground_truth必须与对应图片的名称相同。同上一篇结果一样,我的输出为原始图片大小,但是不知道是不是因为图片不是正方形的,导致训练结果不好。编写一个脚本,重新规划数据集的路径规则,但是我稍微写复杂了一点,使用了类来操作。第二种(复杂):编写一个自己的Dataset,参考。第一种(简单):将数据集路径规则改成项目中。返回的必须是一个字典类型,可以阅读。本人此次使用的是第一种方法。运行时,参数部分直接输入。

xiaoxTai的博客 6480

尚硅谷WebService技术精讲教程

课程目录$ I;m' g: _5 L( a' N! _ 01_WebService_Schema复习.avi 02_WebService_HTTP协议复习.avi 03_WebService_关于WebService的几个问题.avi 04_WebService_WebService中的几个重要术语.avi 05_WebService_使用JDK开发WebService.avi...

weixin_30723433的博客 152

风控域——决策引擎系统设计

本文详细介绍了风控决策引擎系统的设计与应用。决策引擎系统是一种智能化工具,可自动化、数据驱动地辅助或替代人工决策,广泛应用于金融、医疗、营销、风控等领域。文章阐述了决策引擎的核心功能,包括自动化决策、动态规则管理、实时处理和模型集成,以及系统组成,涵盖数据输入层、规则引擎和模型服务层。此外,还探讨了决策引擎的典型应用场景、技术架构、组件设计,以及风控决策引擎系统的技术方案、设计难点和重点。

庄小焱 3320

JAVA开发之Web Service接口开发(附课件+源码)

目录 ├─01-Schema复习.avi ├─02-HTTP协议复习.avi ├─03-关于Web Service的几个问题.avi ├─04-Web Service中的几个重要术语.avi ├─05-使用JDK开发Web Service.avi ├─06-监听请求_使用Eclipse的TCP_IP工具.avi ├─07-编写天气预报和手机归属地的Web Service.avi ├─08-WSDL...

aa123456789555的博客 291

手把手教你学simulink(13.2)--构建一个单相并网逆变器Simulink仿真模型

基于Simulink的单相并网逆变器项目的详细仿真实例。这个项目将重点放在逆变器的详细建模、最大功率点跟踪(MPPT)控制策略、并网控制和仿真分析上。我们将使用MATLAB/Simulink来构建整个系统,并通过具体的代码和模块来实现各个功能。

MHD0815的博客 545

STM32 cubeMX配置串口重定向

这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。使用printf函数和上位机通信是非常的方便的。希望大家都能够掌握。

m0_49476241的博客 4573

JAVA开发之Web Service接口开发(视频+课件+源码)

目录 ├─01-Schema复习.avi ├─02-HTTP协议复习.avi ├─03-关于Web Service的几个问题.avi ├─04-Web Service中的几个重要术语.avi ├─05-使用JDK开发Web Service.avi ├─06-监听请求_使用Eclipse的TCP_IP工具.avi ├─07-编写天气预报和手机归属地的Web Service.avi ├─08-WSDL...

m0_46238676的博客 280

Keras神经网络可视化模块keras.utils.visualize_util的安装配置方法

本文介绍了如何安装和配置keras.utils.visualize_util模块,并提供了一个简单的示例演示如何使用该模块来可视化神经网络的结构。在上述代码中,我们首先定义了一个简单的神经网络模型,该模型具有一个输入层、一个隐藏层和一个输出层,其中隐藏层具有512个神经元,输出层具有10个神经元。运行上述代码后,我们将在当前工作目录下找到一个名为model.png的文件,它显示了神经网络的结构图。这种方式有效地展示了整个过程,让我们能够更好地理解神经网络的结构,方便对其进行改进和调试。

. 892

一文归纳总结分布式架构的那些事!

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33898233的博客 337

深入解析机器人软件开发中的核心:状态机管理(FSM)—— 理论、实践与优化

状态机(FSM)是机器人软件开发中管理复杂行为逻辑的核心工具,广泛应用于导航、任务执行、故障处理等场景。本文系统探讨状态机的基础理论(定义、要素)、主流设计模式(经典FSM、分层状态机HSM、行为树BT),以及工业级实现方法(代码架构、线程安全、调试技巧)。通过移动机器人导航和机械臂任务执行的案例,分析分层状态机的实际应用,并总结常见陷阱(如状态爆炸、阻塞操作)与优化策略(异步化、事件过滤)。

郑伟强dev的专栏 292

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java WebService CXF Spring 自定义拦截器 附实例源码

1、Web service是什么? 1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 2. 一个跨语言、跨平台的规范(抽象) 3. 多个跨平台、跨语言的应用间通信整合的方案(实际) 2、WebService中的几个重要术语 WSDL:web service definition language 直译 : WebService定义语言

牧小农 2872

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Web Service基本概念

Web Service基本概念 Web Service也叫XML Web ServiceWebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。 XML:(Extensible MarkupLanguage)扩展型可标记语言。面向短期

passport_daizi的博客 958

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

CXF导致的JVM MetaSpace OOM问题

线上CXF版本: 3.1.12 **使用场景:**定时任务,每次任务启动时调用jaxWsDynamicClientFactory.createClient(wsdlUrl)创建客户端client,每次任务结束前调用client.destroy()销毁客户端 **问题:**任务运行一段时间后,metaspace溢出导致服务重启 **分析dump文件:**发现程序创建了大量的URLClassLoader,链式引用,无法回收,最后导致MetaSpace溢出 CXF源码分析: jaxWsDynamicClient

felby的博客 1758

java cxf服务端代码_webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成...

首先到CXF官网及spring官网下载相关jar架包,这个不多说。webservice是干嘛用的也不多说。入门例子模拟新增一个用户,并返回新增结果,成功还是失败。大概的目录如上,很简单。ResultInfo.javapackagecom.fei.webservice.user.bean;importjava.text.MessageFormat;importjavax.xml.bind.an...

weixin_39524574的博客 506
上一篇: spring security 入门图解(概述)
下一篇: 领域模型驱动设计(Domain Driven Design)入门概述
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值