自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

成长的足迹

见证个人成长,分享技术经验

  • 博客(405)
  • 资源 (2)
  • 收藏
  • 关注

原创 openssh-client amd64 1:7.2p2-4ubuntu2.4 404 Not Found

一直运转良好的Docker自动发布突然出现了如下异常,导致无法准确构建image。Step 3 : RUN apt-get update...Step 8 : RUN apt-get install -y openssh-client ---> Using cacheThe following NEW packages will be installed: krb5-lo...

2018-12-25 06:55:24 1541

原创 JavaNCSS概述及JavaNCSS got an error while parsing the java file详解

在定义Java接口时使用了Java 7的default关键字,定义了通用的一个方法的实现,代码如下:public interface MyServiceInterface {... default void init() { ... }...}使用JDK 8构建,总是提示如下警告:[INFO] [WARN] JavaNCSS got an er...

2018-10-29 22:20:04 1761 1

原创 JTF的Unable to invoke request异常或Unable to find a MessageBodyReader of content-type application..异常详解

基于Jersey开发的一个操作OpenStack的REST服务,利用Jersey的Test Framework编写单元测试类如下:public class RestAddressTest extends JerseyTest { Integer autoId = 1; @BeforeClass public void before() throws Excepti...

2018-10-25 23:53:11 5425 1

原创 OpenStack的Image service的版本及API配置文件

OpenStack的Image service用以存储、管理OpenStack中的VM的镜像。Glance项目是其实现。1. Image service的APIs的版本1) v1 (避免使用)Image service的早期版本,其状态的变化如下:SUPPORTED in OpenStack Kilo DEPRECATED in OpenStack Newton DELETED...

2018-10-17 22:58:36 697

原创 Can not deserialize instance of java.lang.String out of START_OBJECT token

通过OpenStack4j 3.0.4访问OpenStack Mitaka版本云实例的镜像服务(v2),发生如下异常:Exception in thread "main" javax.ws.rs.ProcessingException: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize insta...

2018-10-16 23:50:41 4725

原创 Docker的网络类型及驱动器

计算机如果不能够联网,其价值就要大打折扣。类似的,一个Docker容器也需要通过网络访问其他资源,或者被其他资源访问。这就涉及到Docker容器实例的网络,也与Docker宿主机的网络息息相关。总的来说,Docker的网络是一个通过多种网络驱动器(driver)实现的Docker子系统。根据网络驱动器的不同,Docker提供了不同特性的网络,Docker容器实例也因加入不同的网络而具有不同的网...

2018-10-15 22:33:28 1828

原创 Java 11新特性

国庆节前夕,Oracle发布了Java Platform Standard Edition 11,同时提供了JDK 11的下载。或许是受通信行业LTE的启发,Oracle为Java SE 11提供了一个闪亮的标签LTS (Long Term Support)。以此打消业界对Java 11重蹈Java 9, Java 10短命的顾虑。Java 11的Release Notes很冗长,本文概述...

2018-09-30 10:29:23 838

原创 OpenStack4j访问OpenStack Q版本的Identity服务v2.0

OpenStack4j简洁易用,项目中一直使用方便,构造OS如下:OSClientV2 os = OSFactory .builderV2() .endpoint(cred.getCloudURI()) .credentials(cred.getUsername(), cred.getPassword()) .tenantName(cred.getProjec...

2018-09-29 11:52:43 1078

原创 Logback及其MDC功能详解

Logback日志系统是SLF4J的原生实现。同时,Logback也是Log4j的继任者,补全了Log4j的不足。1. Logback的模块组成logback-core,其他模块的功能基础 logback-classic可以看作Log4j的增强版实现。实现了SLF4J API,能够在部署的时候提供给应用日志功能。logback-access集成了Servlet容器(Tomcat...

2018-09-26 23:09:32 14563

原创 SLF4J及其MDC详解

SLF4J,即Simple Logging Facade for Java,是一个通用的、Java日志系统的抽象框架。对于实现了SLF4J的日志系统,能够在应用部署时(而不是编译时)动态插入应用,使得应用可以采用任何日志系统。1. 常见的SLF4J日志系统实现No-operation (NOP) Logger即org.slf4j.helpers.NOPMDCAdapter,是SLF4...

2018-09-26 22:28:00 22282

原创 Apache Maven Release Plugin插件详解

Release插件是Apache Maven团队提供的官方插件,最终版本是2015-10-17发布的2.5.3,能够为项目代码库打tag,并将项目代码库中的代码发布到SCM的新版本。1. 使用Release插件的前提条件1) 明确使用的maven-release-plugin版本,当前为2.5.3<build>  <plugins>    <plug...

2018-09-21 17:26:37 13786 2

原创 JAX-RS与Jersey的Interceptor详解

在JAX-RS标准中,过滤器Filter是JAX-RS API的组成部分,主要用于操作HTTP请求或响应的Headers, Methods和URI等参数。而拦截器Interceptor作为JAX-RS extension API的组成部分,主要操作HTTP请求或响应的Body中的Entity数据流,如对Entity数据流进行压缩/解压缩,JSON格式与Java对象之间的转换等。可以说,在JAX-R...

2018-08-24 16:39:01 3598

原创 Jersey的Filter详解

Jersey是一款实现了JAX-RS标准的RESTful Web Services开发框架。Jersey的Filter主要用于操作HTTP请求或响应的Headers, Methods和URI等参数。而相比较,Jersey的Interceptor主要操作Entity的输入流和输出流,如对Entity输入流进行zip/unzip。1. Filter的分类1) 根据Filter的功能请求...

2018-08-23 14:51:55 5106

原创 Spring Cloud OpenFeign详解

作为Spring Cloud的子项目之一,Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式,为微服务架构下服务之间的调用提供了解决方案。首先,利用了OpenFeign的声明式方式定义Web服务客户端;其次还更进一步,通过集成Ribbon或Eureka实现负载均衡的HTTP客户端。Spring Cloud OpenFeign的最新版本是2...

2018-08-02 21:31:34 114781 5

原创 Java应用与HTTP服务之间的粘合剂OpenFeign详解

OpenFeign曾用名Netflix Feign,最新版本是2018.5发布的9.7.0。OpenFeign是Java应用中编写Web服务的客户端的利器,基于第三方HTTP客户端类库,声明式地构建Web服务的客户端应用,以调用Web服务。OpenFeign在Java应用中,负责处理与远程Web服务的请求响应,最大限度降低编码复杂性。1. HTTP客户端类库OpenFeign默认使用J...

2018-08-01 12:28:38 2508

原创 Spring框架5的spring-web模块中的Java对象与HTTP消息之间的数据转换器一览

Spring Framework 5.0.7.RELEASE版本中的spring-web模块,提供org.springframework.http.converter包,提供了一系列的Java对象与HTTP消息之间的数据转换器。其中,最基本的是org.springframework.http.converter.HttpMessageConverter接口,是所有具体数据转换器实现的基本接口。通...

2018-07-29 18:01:08 561

原创 Spring框架spring-web模块中的RestTemplate类详解

RestTemplate类是spring-web模块中进行HTTP访问的REST客户端核心类。RestTemplate请求使用阻塞式IO,适合低并发的应用场景。1. RestTemplate类提供了3个构造函数RestTemplate() RestTemplate(ClientHttpRequestFactory requestFactory)org.springframework.h...

2018-07-27 23:51:03 8995 1

原创 Spring Boot 2.0中嵌入式Web容器(如Tomcat)对HTTP2的支持详解

Spring Boot应用往往作为服务发布,这里对HTTP2的支持,主要是对通过嵌入式Web容器支持HTTP2。1. 在最新的Spring Boot 2.0.3.RELEASE中,集成的三种嵌入式Web容器及其版本如下:Tomcat 8.5.31  (Servlet 3.1) Undertow 1.4.25.Final(Servlet 3.1) Jetty 9.4.11.v201806...

2018-07-09 22:46:03 9529 1

原创 Spring Framework 5中的对HTTP/2客户端和服务器的集成

Spring框架最早出现于2003年,以轻量级为Java企业应用开发提供了JavaEE之外的另一个选择。Spring框架就是一个辅助开发Java企业应用的框架。Spring框架的最新版本是5.0,主要新特性如下:最低要求Java 8,兼容Java 9最低要求JavaEE 7,兼容JavaEE 8(Servlet 4.0)支持WebFlux应用,无需Servlet容器即可运行(在Netty服务器中)...

2018-07-03 16:25:31 1893

原创 Java8中基于OkHttp3编写HTTP2客户端详解

显然,我们必须在Java还没有准备好支持HTTP2客户端编程的情况下(即使用Java 8及以下版本),提供HTTP2客户端应用的解决方案。目前流行的类库如下: OkHttp Eclipse Jetty Netty Apache HttpComponents (Apache HC)其中,Eclipse Jetty和Netty都同时提供客户端和服务端。而曾经广泛使用的Apache HC...

2018-07-03 12:09:19 14969 5

原创 Java10基于Java API编写HTTP2客户端详解

首先,基于Java API的HTTP2客户端,至少要使用Java 9,主要是基于其中的jdk.incubator.httpclient模块。Java 10中的相关部分没有变化。Java 11中已经正式发布到java.net.http模块。jdk.incubator.httpclient模块主要提供了如下API:HttpClient类 HttpRequest类 HttpResponse类...

2018-07-03 10:29:55 3672 2

原创 Java对HTTP2的支持

说到Java对HTTP2的支持情况,实质上包含两个部分。一个就是Java对TLS 1.2及其ALPN扩展的支持情况,另一个就是Java对HTTP2客户端、服务器的编程支持情况。1. Java对TLS 1.2及其ALPN扩展的支持1.1 Java 6初始时不支持TLS 1.2,但在最新的更新包(6u191)支持,并且客户端默认即使用TLS 1.2。但是为了支持HTTP2,还要借助于Je...

2018-07-02 14:15:28 15179 3

原创 HTTP及其2.0版本综述

1.HTTP的历史HTTP出现已有近30年的历史了。最早的版本HTTP 0.9发布于1991。随后的HTTP 1.0发布于1996.5,提供了缓存相关的Head,如If-Modified-Since,Expires等。1999年发布的HTTP 1.1是使用最广泛的版本,其改进的特征如下:增强了缓存相关的Head: Entity tag,If-Unmodified-Since, If-Match, ...

2018-07-01 12:47:02 816 1

原创 PowerMockito单元测试中的org.mockito.exceptions.misusing.UnfinishedVerificationException异常详解

首先给出测试方法的片段如下:MyAgent rpc = new MyAgent("myAgentName");PowerMockito.verifyPrivate(rpc).invoke("initNode");PowerMockito.verifyPrivate(rpc).invoke("initPowerSwitch", Mockito.anyString(), Mockito.anyIn...

2018-06-14 17:35:28 10133

原创 Apache Commons概览(备查)

在Java社区,有那么一小撮人,觉得Java API还不足用,至少还不够好用,就起了给增强Java API的念头,于是Apache Commons项目诞生了。为了便于被使用,Apache Commons项目采用了与Java API的包一致的方式组织,于是出现了一系列子项目。伴随着Apache Commons项目的发展,有些子项目保持了顽强的生命力,而有些则慢慢沦为弃子,还有些新的子项目不断产生。于...

2018-06-14 17:35:18 618

原创 PowerMockito单元测试中的Invalid use of argument matchers问题详解

首先,简单说说PowerMockito进行单元测试的三部曲:打桩,即为非测试目标方法设置返回值,这些返回值在测试目标方法中被使用。执行测试,调用测试目标方法。验证测试结果,如测试方法是否被执行,测试结果是否正确等。其次,在使用PowerMockito框架进行单元测试的过程中,经常遇到如下异常:Invalid use of argument matchers!0 matchers expected...

2018-06-13 17:44:44 29764 4

原创 基于Jackson的JSON数据处理详解

Jackson也被称为JSON for Java,已经成为事实上的JSON数据处理的标准实现。Jackson提供了一组工具,用以处理JSON数据,当前最新版本为28-Mar-2018发布的2.9.5。Jackson的标准设计思路是首先构造JsonFactory对象,然后生成JsonParser对象以读取JSON数据并转换为Java对象,或者生成JsonGenerator对象以将Java对象...

2018-06-12 17:40:43 8609 1

原创 Ubuntu的安装参数DEBIAN_FRONTEND详解

1. Debian系列的操作系统在Debian系列的操作系统中,内核支持多个安装参数,DEBIAN_FRONTEND就是其中之一,用以设置安装过程中的用户界面类型。DEBIAN_FRONTEND=noninteractive|text|newt|gtk|corba默认值为newt。对于串口安装,推荐值为text。而在自动化安装过程中,使用最频繁的还是noninteractive。2. Ubuntu...

2018-05-31 00:35:18 9906

原创 Time Zone Database及tzdata详解

Time Zone Database,简称tz或tzinfo,是一组表示地球上各地的时间历史的代码和数据,目前由IANA维护。IANA会根据各地政体的变化而定期更新关于时区边界、UTC和夏令时等的规则。对tz的更新遵循BCP 175流程进行管理。当前的最新版本是2018.5.1发布的2018e,其他版本还有:2018e 2018d 2018c 2017c 2017b 2017...

2018-05-30 23:59:45 17568

原创 在自动化运维中设置apt-get install tzdata的noninteractive方法

在Ubuntu系统中,执行命令apt-get install -y tzdata以安装tzdata软件包。但是,最近我们发现,在Ubuntu 18.04 (Bionic Beaver)上无法自动安装该软件包。在tzdata 2017的各个版本中(如2017c),安装过程中采用默认的系统时区,所以可以无交互地顺利安装完毕,输出信息如下。Current default time zone: 'Etc/...

2018-05-30 17:31:43 17338 1

原创 spring-petclinic-graphql项目详解

熟悉Spring框架的开发人员对其著名的spring-petclinic应用都不陌生。Nils在spring-petclinic的基础上开发了结合GraphQL特性的spring-petclinic-graphql应用,本文对该应用进行详解。1. spring-petclinic-graphql的组成backend,使用graphql-java实现的GraphQL API服务依赖graphql-s...

2018-04-24 23:54:04 2244

原创 GraphQL的GraphQL Java Tools概述

GraphQL Java Tools是一个软件包,能够从GraphQL的模式定义*.graphqls文件构建出对应的Java的POJO类型对象。GraphQL Java Tools的最新版本是2017.11发布的4.3.0。1. GraphQL Java Tools的项目名称为graphql-java-servlet,其本身依赖如下软件模块:com.graphql-java:graphql-jav...

2018-04-23 23:12:08 4744

原创 Gerrit的commit-msg hook使用指南

Git hooks是Git提供的一种机制,这些hooks能够直接被git commit命令调用,无需开发人员手工设置。Gerrit提供的commit-msg hook,被调用时,可以自动根据模板编辑commit message,开发人员不必再手工输入commit message。1.commit-msg hook实现机制在Gerrit中,该hook实际上就是一个简短的Shell脚本实现。commi...

2018-04-23 22:50:03 37430

原创 docker exec执行多个命令详解

docker exec命令能够在运行着的容器中执行命令。docker exec命令的使用格式:docker exec [OPTIONS] container_name COMMAND [ARG...]OPTIONS说明:-d,以后台方式执行命令;-e,设置环境变量-i,交互模式-t,设置TTY-u,用户名或UID,例如myuser:myusergroup通常COMMAND只能是一条语句,为了支持多...

2018-04-23 22:46:24 50950

原创 Jenkins中的SSH Plugin暨SSH remote hosts配置

在Jenkins中进行构建时,可能需要首先SSH登录到一个远程服务器以执行必要的脚本,然后再执行构建。这时,需要安装SSH Plugin,并进行如下配置。1.在Jenkins界面,系统管理->管理插件->安装SSH Plugin说明,SSH Plugin的目的就是支持SSH到远程服务器,然后执行Shell命令。2.在Jenkins界面,系统管理->Configure(配置)-&g...

2018-04-23 22:41:36 34989 3

原创 Gerrit 2.14入门指南

Gerrit是一款免费、开源的代码审查和代码库管理的软件,以Git代码库作为版本控制系统,可以通过命令行、REST和网页界面进行访问。1.版本截至2017年5月,最新版本2.14。2.下载链接https://gerrit-releases.storage.googleapis.com/gerrit-2.14.war3.安装java -jar ~/gerrit-2.14.war init -d ~/...

2018-04-23 22:37:46 4422

原创 开发过程中持续使用Git代码更新Docker容器的方法

在开发调试过程中,需要不断更新代码到Git库,然后使用Git库中的最新代码更新运行着的Docker容器,目前看来有如下两种方法,建议使用第二种。1. 直接在容器中执行git命令,更新容器中的目录和文件(不推荐)1) 首先,在构建容器镜像文件的时候,定义在Dockfile文件中并设置代码的Git库RUN apt-get install -y gitRUN git config --global ...

2018-04-23 22:31:16 13268

原创 GraphQL的graphql-java-servlet模块详解

本质上,graphql-java-servlet软件模块实现了一个Java Servlet,将GraphQL服务发布为通过HTTP可访问的Web服务。目前,graphql-java-servlet软件模块只支持GraphQL的Query和Mutation操作类型,还不支持subscription操作类型。graphql-java-servlet软件模块的最新版本是2017.12发布的4.7.0。1...

2018-04-23 22:17:44 3125

原创 Maven构建一个结合GraphQL服务的Spring Boot应用

本文使用Maven从零开始构建一个Spring Boot应用,以发布一个支持GraphQL的Web服务器。1. 执行mvn archetype:generate可以选择模板(但是已有的模板往往跟不上技术的进步),也可以只是生成一个基本的Maven项目。2. 编辑生成的pom.xml文件,使之首先支持Spring Boot特性 <parent> <groupI...

2018-04-23 00:02:52 4323

原创 graphql-spring-boot,结合GraphQL的Spring Boot Starters类库概述

GraphQL服务器能够提供的API查询请求,往往是通过HTTP实现的。而Spring Boot能够方便地构建一个Web服务,于是自然就引入了Spring Boot使能的GraphQL服务器。graphql-spring-boot是一个Spring Boot应用的辅助类库,基于GraphQL Java实现的graphql-java和graphql-java-servlet,能够以Spring Bo...

2018-04-18 23:42:10 7807

digital-7 (mono italic).ttf

A file of ttf

2021-07-22

Flex3中文帮助文档

Flex程序员必备,主要介绍ActionScript 3.0的包和类。

2010-02-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除