小编Joh*_*Pan的帖子

无法通过 Dockerized WebLogic 将 Debug 设置为适用于 Java,不能使用 IntelliJ 或 Studio Code

我想将调试器附加到我在 dockerized WebLogic 12c 中部署的 WAR。我使用 WebLogic 的官方镜像(这是一个 Linux 容器) https://hub.docker.com/_/oracle-weblogic-server-12c 并使用 docker 命令启动容器:

docker run -d -p 4002:4002 -p 9002:9002 
-v c:/my-path-to-shared-volume:/u01/oracle/properties 
-e ADMINISTRATION_PORT_ENABLED=true -e DOMAIN_NAME=docker_domain 
-e JAVA_TOOL_OPTIONS=\"-agentlib:jdwp=transport=dt_socket,address=4002,server=y,suspend=n\" 
--name weblogic store/oracle/weblogic:12.2.1.3-dev-200109
Run Code Online (Sandbox Code Playgroud)

weblogic 控制台在https://localhost:9002/console/ 上活跃起来,但是在尝试运行调试器时,我的 IDE 说:

无法打开调试器端口(本地主机:4002):java.io.IOException“握手失败 - 连接过早关闭”

我的操作系统是Windows10。我尝试了Visual Studio Code IntelliJ,并得到了相同的输出。WAR 运行得很好,当我使用 portman 命中某些服务端点时,它们会做出响应。

似乎发生的是容器内的 weblogic 启动脚本尝试两次应用 Java 选项参数!请参阅下面的容器输出的相关部分:

域主页是:/u01/oracle/user_projects/domains/docker_domain 拿起 JAVA_TOOL_OPTIONS:“-agentlib:jdwp=transport=dt_socket,address=localhost:4002,server=y,suspend=n” 在地址侦听传输 dt_socket:4002 正在初始化 WebLogic 脚本工具 (WLST) ... 欢迎使用 WebLogic Server 管理脚本外壳

[...] (在我得到的日志中进一步向下:)

使用以下行启动 WLS:/usr/java/jdk-8/bin/java -server -Djava.security.egd=file:/dev/./urandom -cp /u01/oracle/wlserver/server/lib/weblogic-launcher …

java debugging yaml weblogic12c docker

5
推荐指数
1
解决办法
1150
查看次数

标签 统计

debugging ×1

docker ×1

java ×1

weblogic12c ×1

yaml ×1