尝试使用 Payara + Jrebel + Eclipse
Try to use Payara + Jrebel + Eclipse
我正在尝试在我的 Eclipse neon.3 (4.6.3):
中设置
- Payara 服务器容器 (4.1.2.174)
- JRebel 代理 7.1.3
用于以 EAR 格式打包的应用程序。在部署过程中,Payara 或 JRebel 日志中没有显示任何错误。我收到以下有关我的 EJB 的消息:
2017-12-12T14:52:50.933-0200|INFORMAÇÕES: 2017-12-12 14:52:50 JRebel: Watching 'alfa.bc.logistica.core.ejb.AlfaTransportadorEJB' for changes
2017-12-12T14:52:50.936-0200|INFORMAÇÕES: Portable JNDI names for EJB AlfaTransportadorEJB: [java:global/alfa.bc.logistica.ee/alfa.bc.logistica.core.em/AlfaTransportadorEJB!alfa.bc.logistica.core.remote.AlfaTransportadorRemote, java:global/alfa.bc.logistica.ee/alfa.bc.logistica.core.em/AlfaTransportadorEJB]
当我对他们监控的类(例如AlfaTransportadorEJB
)进行任何更改时,不会对容器进行更改,但会成功编译并生成.class
文件在我的类路径的 target
目录中(在 IDE 选项中 "Build automatically" = true)。
显然 .class
文件不在容器上 "deploy" 以执行 Class 加载的重新加载过程。
附加信息:
对于 JRebel 配置,我遵循了 this 教程。
对于相同版本的相应 EAR 应用程序,"reloading of classes" 使用 Glassfish 4.1 和 Jrebel 7.0.5[=49 成功完成=].但是在这种情况下,在部署过程中,容器会显示以下内容。
.
2017-12-12T15:02:24.167-0200|Informações: 2017-12-12 15:02:24 JRebel: Directory 'C:\Documentos\cooperateEE\logistica\alfa.bc.logistica.core.em\target\classes' will be monitored for changes.
... <another logs here> ...
2017-12-12T15:03:45.994-0200|Informações: 2017-12-12 15:03:45 JRebel: Watching 'alfa.bc.logistica.core.ejb.AlfaTransportadorEJB' for changes
2017-12-12T15:03:45.998-0200|Informações: Portable JNDI names for EJB AlfaTransportadorEJB: [java:global/alfa.bc.logistica.ee/alfa.bc.logistica.core.em/AlfaTransportadorEJB!alfa.bc.logistica.core.remote.AlfaTransportadorRemote, java:global/alfa.bc.logistica.ee/alfa.bc.logistica.core.em/AlfaTransportadorEJB]
我认为 JRebel 没有监控 target
目录,然后重新加载容器中已编译的 .class
文件。
JRebel 没有像上面的日志所说的那样识别我的目标目录的原因是什么 ("will be monitored for changes
")?
我发现了问题。比较 Glassfish(有效)和 payara(无效)之间的 jrebel.log
,我意识到对于 Payara,日志显示:
2017-12-22 08:04:47.012 INFO [10] [Banner]
#############################################################
2017-12-22 08:04:47.012 INFO [10] [Banner]
2017-12-22 08:04:47.013 INFO [10] [Banner] Legacy Agent 7.0.5 (201702281652)
2017-12-22 08:04:47.013 INFO [10] [Banner] (c) Copyright ZeroTurnaround AS, Estonia, Tartu.
2017-12-22 08:04:47.014 INFO [10] [Banner]
2017-12-22 08:04:47.015 INFO [10] [Banner] Over the last 10 days JRebel prevented
2017-12-22 08:04:47.015 INFO [10] [Banner] at least 66 redeploys/restarts saving you about 2.7 hours.
2017-12-22 08:04:47.017 INFO [10] [Banner]
2017-12-22 08:04:47.017 INFO [10] [Banner] JRebel started in remote server mode.
2017-12-22 08:04:47.025 INFO [10] [Banner]
2017-12-22 08:04:47.026 INFO [10] [Banner]
2017-12-22 08:04:47.026 INFO [10] [Banner]
#############################################################
JRebel started in remote server mode
在 glassfish 中,不会记录此消息。所以我在 JRebel 文档中遵循 this link 并禁用 remote server mode
删除容器上的 VM 选项:
-Drebel.remoting_plugin=false
简而言之,问题是 JRebel 正在使用活动服务器模式参数进行初始化
我正在尝试在我的 Eclipse neon.3 (4.6.3):
中设置- Payara 服务器容器 (4.1.2.174)
- JRebel 代理 7.1.3
用于以 EAR 格式打包的应用程序。在部署过程中,Payara 或 JRebel 日志中没有显示任何错误。我收到以下有关我的 EJB 的消息:
2017-12-12T14:52:50.933-0200|INFORMAÇÕES: 2017-12-12 14:52:50 JRebel: Watching 'alfa.bc.logistica.core.ejb.AlfaTransportadorEJB' for changes
2017-12-12T14:52:50.936-0200|INFORMAÇÕES: Portable JNDI names for EJB AlfaTransportadorEJB: [java:global/alfa.bc.logistica.ee/alfa.bc.logistica.core.em/AlfaTransportadorEJB!alfa.bc.logistica.core.remote.AlfaTransportadorRemote, java:global/alfa.bc.logistica.ee/alfa.bc.logistica.core.em/AlfaTransportadorEJB]
当我对他们监控的类(例如AlfaTransportadorEJB
)进行任何更改时,不会对容器进行更改,但会成功编译并生成.class
文件在我的类路径的 target
目录中(在 IDE 选项中 "Build automatically" = true)。
显然 .class
文件不在容器上 "deploy" 以执行 Class 加载的重新加载过程。
附加信息:
对于 JRebel 配置,我遵循了 this 教程。
对于相同版本的相应 EAR 应用程序,"reloading of classes" 使用 Glassfish 4.1 和 Jrebel 7.0.5[=49 成功完成=].但是在这种情况下,在部署过程中,容器会显示以下内容。
.
2017-12-12T15:02:24.167-0200|Informações: 2017-12-12 15:02:24 JRebel: Directory 'C:\Documentos\cooperateEE\logistica\alfa.bc.logistica.core.em\target\classes' will be monitored for changes.
... <another logs here> ...
2017-12-12T15:03:45.994-0200|Informações: 2017-12-12 15:03:45 JRebel: Watching 'alfa.bc.logistica.core.ejb.AlfaTransportadorEJB' for changes
2017-12-12T15:03:45.998-0200|Informações: Portable JNDI names for EJB AlfaTransportadorEJB: [java:global/alfa.bc.logistica.ee/alfa.bc.logistica.core.em/AlfaTransportadorEJB!alfa.bc.logistica.core.remote.AlfaTransportadorRemote, java:global/alfa.bc.logistica.ee/alfa.bc.logistica.core.em/AlfaTransportadorEJB]
我认为 JRebel 没有监控 target
目录,然后重新加载容器中已编译的 .class
文件。
JRebel 没有像上面的日志所说的那样识别我的目标目录的原因是什么 ("will be monitored for changes
")?
我发现了问题。比较 Glassfish(有效)和 payara(无效)之间的 jrebel.log
,我意识到对于 Payara,日志显示:
2017-12-22 08:04:47.012 INFO [10] [Banner]
#############################################################
2017-12-22 08:04:47.012 INFO [10] [Banner]
2017-12-22 08:04:47.013 INFO [10] [Banner] Legacy Agent 7.0.5 (201702281652)
2017-12-22 08:04:47.013 INFO [10] [Banner] (c) Copyright ZeroTurnaround AS, Estonia, Tartu.
2017-12-22 08:04:47.014 INFO [10] [Banner]
2017-12-22 08:04:47.015 INFO [10] [Banner] Over the last 10 days JRebel prevented
2017-12-22 08:04:47.015 INFO [10] [Banner] at least 66 redeploys/restarts saving you about 2.7 hours.
2017-12-22 08:04:47.017 INFO [10] [Banner]
2017-12-22 08:04:47.017 INFO [10] [Banner] JRebel started in remote server mode.
2017-12-22 08:04:47.025 INFO [10] [Banner]
2017-12-22 08:04:47.026 INFO [10] [Banner]
2017-12-22 08:04:47.026 INFO [10] [Banner]
#############################################################
JRebel started in remote server mode
在 glassfish 中,不会记录此消息。所以我在 JRebel 文档中遵循 this link 并禁用 remote server mode
删除容器上的 VM 选项:
-Drebel.remoting_plugin=false
简而言之,问题是 JRebel 正在使用活动服务器模式参数进行初始化