JAVA 四月 11, 2021

Java 应用远程调试

文章字数 10k 阅读约需 10 mins.

软件开发会时经常会遇到这样的场景:

  • 现场反馈的问题,在本地环境无法重现,可能需要将现场数据库导回来才能重现问题
  • 生产环境中的服务无法直接从本地开发环境进行连接,进而无法使用本地代码进行调试

在上面...

查看全文

JAVA 四月 11, 2021

Java 应用远程调试

文章字数 10k 阅读约需 10 mins.

软件开发会时经常会遇到这样的场景:

  • 现场反馈的问题,在本地环境无法重现,可能需要将现场数据库导回来才能重现问题
  • 生产环境中的服务无法直接从本地开发环境进行连接,进而无法使用本地代码进行调试

在上面的场景中,无论是将现场库导出,还是开通生产环境服务的访问权限,都是非常困难且不安全的。

本文将介绍一种由 Java 平台提供的,远程调试 Java 应用的方法。

JPDA(Java Platform Debugging Architecture)是一个多层调试架构,支持在不同操作系统、虚拟机及 JDK...

查看全文

JAVA 十二月 06, 2020

如何确定装载了哪个类

文章字数 4.3k 阅读约需 4 mins.

某些时候,我们可能希望知道 ClassLoader 里到底装载的是哪个 class,比如当两个 jar 包中存在 package 和 Class 名完全相同的两个类时。

在 java 命令的帮助信息中,有如下内容(部分):

$ java -help
用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
其中选项包括:
    -d32      使用 32 位数据模型 (如果可用...
查看全文

JAVA 七月 26, 2020

为什么应该设置 com.sun.management.jmxremote.rmi.port?

文章字数 5.1k 阅读约需 5 mins.

在使用 JMX 对 Java 应用进行监控时,一般会在启动时添加如下参数:

java \
-Djava.rmi.server.hostname=192.168.16.237 \
-Dcom.sun.management.jmxremote.rmi.port=2909 \
-Dcom.sun.management.jmxremote.port=9009 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management...
查看全文

JAVA 七月 12, 2020

为什么不建议使用双括号初始化?

文章字数 2.6k 阅读约需 2 mins.

Map<String, Object> map = new HashMap<String, Object>() {{
    put("name", "Alpha");
    put("age", 8);
}};

以下内容引自 The Java™ Tutorials - Initializing Fields

Initializing Instance Members

Normally, you would put code to initialize an instance variable...

查看全文

JAVA 六月 19, 2020

Gradle HTTP 超时设置

文章字数 3.1k 阅读约需 3 mins.

在使用 Nexus 时,很罕见的遇到了超时问题:

> Unable to load Maven meta-data from http://localhost:8081/repository/test/io/github/alphahinex/example/0.1.2-SNAPSHOT/maven-metadata.xml.
   > Could not HEAD 'http://localhost:8081/repository/test/io/github/alphahinex...
查看全文

JAVA 一月 22, 2020

How to integrate SEATA AT mode with Spring Cloud

文章字数 6.4k 阅读约需 6 mins.

本文基于一个 Spring Cloud 业务实例,说明如何集成 SEATA AT 模式,进行分布式事务控制。

SEATA 是什么?

Seata: Simple Extensible Autonomous Transaction Architecture

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 —— 引用自 SEATA 官方文档

AT 模式是...

查看全文

JAVA 一月 17, 2020

GitHub Packages in Action

文章字数 9.4k 阅读约需 9 mins.

GitHub Packages 可以用来当做 Release 版本 jar 包的 Maven 仓库。

与 Maven 中央库比,没有繁琐的申请流程,可以快速的将 jar 包发布出去供他人使用。

与 Nexus 私服相比,无需架设公网访问环境。

缺点 是只支持 Release 版本的发布和下载,Snapshot 版本虽然可以发布上去,但无法被其他项目依赖。目前尚不支持自行删除已上传的 jar 包,需联系 GitHub 协助处理。

本文以实例说明,在 Gradle 中如何利用 GPR(GitHub ...

查看全文

JAVA 一月 05, 2020

Using Gradle Behind Proxy

文章字数 5.1k 阅读约需 5 mins.

在网络代理环境下使用 Gradle 时,可能会遇到以下三个问题:

  1. gradlew 下载对应 Gradle 发布版时无法下载
  2. 下载依赖时,提示连接超时
  3. SSL 证书无效

错误提示

Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authorization Required"

原因

wrapper 下载发布包时也需要配置代理

解决办法

试遍各种为 wrapper 配置代理的方法,均无果。用最直接的办...

查看全文

JAVA 五月 15, 2018

Using Liquibase with Gradle in Spring Project

文章字数 14k 阅读约需 13 mins.

Spring 项目通过 Gradle 插件使用 Liquibase 的简易说明

引用 Liquibase 官网 的一张图片:

类似的工具还有 Flyway

Flyway 官网 上有一个同类工具特性的对比,详见 Feature Comparison 部分或下图:

看图的话,Flyway 完胜,不过 等等!看完下面内容再做决定

查看全文

JAVA 六月 15, 2016

TeamCity for Java Project on GitHub

文章字数 4.8k 阅读约需 4 mins.

GitHub 上 Java 项目使用 TeamCity 和 Codecov 的简易说明

  • 利用 TeamCity 构建 GitHub 上的 Java 项目
  • 构建时进行静态代码质量检查及单元测试,并生成测试覆盖率报告
  • 确保每个 PR 和 master 分支的每次提交都能触发构建
  • 将构建结果和覆盖率情况可视化展现

使用 Docker 镜像搭建基础环境:

$ docker pull propersoft/docker-teamcity:server
$ docker pull propersoft/...
查看全文
加载更多
0%