加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

从IntelliJ IDEA远程调试Docker容器中的Java 9

发布时间:2020-12-16 03:40:47 所属栏目:安全 来源:网络整理
导读:我有一个包含这个内容的Dockerfile: FROM openjdk:9WORKDIR /projectADD . /projectEXPOSE 5005 我的docker-compose.yml看起来像这样: version: "3.2"services: some-project: build: . ports: - target: 5005 published: 5005 protocol: tcp mode: host c

我有一个包含这个内容的Dockerfile:

FROM openjdk:9

WORKDIR /project

ADD . /project

EXPOSE 5005

我的docker-compose.yml看起来像这样:

version: "3.2"
services:
  some-project:
    build: .
    ports:
      - target: 5005
        published: 5005
        protocol: tcp
        mode: host
  command: "java '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005' SomeClass"

当我做docker-composer时,我看到一条消息“在地址:5005处收听传输dt_socket”.但是当我尝试连接jdb或Idea时,我得到“java.io.IOException:handshake failed-connection prematurally closed”.

如果我将openjdk:9更改为openjdk:8,一切正常.但是,我的项目需要Java 9.

最佳答案
从Java 9开始,JDWP套接字连接器默认只接受本地连接.看到:
http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435

因此,要从外部启用调试连接,请指定*:< port>地址:

-agentlib:JDWP = =运输dt_socket,服务器= Y,暂停= N,地址= *:5005

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读