gpt4 book ai didi

docker - 使用 Eclipse 进行 JRebel 远程处理导致 Docker 上的 WebSphere 崩溃

转载 作者:行者123 更新时间:2023-12-02 03:38:36 25 4
gpt4 key购买 nike

我已在 Windows 计算机上的 Eclipse maven 项目中配置了 JRebel 远程处理模式,并在 Linux docker 容器中运行 WebSphere。

在 JVM 参数中,它正在设置

-agentpath:/opt/jrebel/lib/libjrebel64.dll -Drebel.remoting_plugin=true

当我更改源代码时,jrebel 开始更新代码,并且出现错误:

2018-02-27 23:32:14.066 ERROR [rebel-CancellableExecutorService-1] c.z.jrebel.remoting.Transaction - [OUT] [tr_36] [Project <maven-module-name>, server websphere] Synchronization failed! Read timed out
com.zeroturnaround.jrebel.remoting.RemotingException: Read timed out
at com.zeroturnaround.jrebel.remoting.net.RemotingClient.tryMakePostRequest(JRebelRemoting:189)
at com.zeroturnaround.jrebel.remoting.net.RemotingClient.sendTransactionCommand(JRebelRemoting:147)
at com.zeroturnaround.jrebel.remoting.net.RemotingClient.commitTransaction(JRebelRemoting:101)
at com.zeroturnaround.jrebel.remoting.Transaction.commit(JRebelRemoting:487)
at com.zeroturnaround.jrebel.remoting.Transaction.synchronize(JRebelRemoting:231)
at com.zeroturnaround.jrebel.remoting.RemoteServer$1.run(JRebelRemoting:56)
at org.zeroturnaround.common.util.ExecutorUtil$RunnableWrapper.run(ExecutorUtil.java:153)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketTimeoutException: Read timed out

此后,Web 应用程序和 WebSphere 崩溃了。

最佳答案

错误消息表明 IDE 与 Linux Docker 容器内运行的 WebSphere 应用程序服务器之间的连接失败。

首先,如果您在 Linux 机器上启动 WebSphere 服务器,则应该使用为 Linux 编译的 JRebel 代理库。也就是说,您应该在 -agentpath 参数的路径值中使用 libjrebel64.so,而不是 libjrebel64.dll。在 Linux 环境中使用 .dll 可能会导致服务器在启动时崩溃。目前,我的假设是服务器没有响应,因为它甚至没有正确启动。

此外,请确保可以通过您在 IDE 端的远程服务器配置中输入的地址访问该服务器。

如果在执行前面的建议后仍然存在相同的问题,请重现此问题并向我们发送来自 jrebel.logjrebel-eclipse.log 文件~/.jrebel/ 目录到 support@zeroturnaround.com。

关于docker - 使用 Eclipse 进行 JRebel 远程处理导致 Docker 上的 WebSphere 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com