部署和调试用的IntelliJ 12远程码头(Deploy & Debug remote Jetty

2019-08-16 21:54发布

我一直盗号,现在google搜索了一会儿,我发现,好像他们是旧版本的IntelliJ的,与各种应用服务器写了几statck溢出线程。 通常他们会告诉你进入

java -Xdebug -Xrunjdwp:transport=dt_socket,address=51887,suspend=n,server=y

一个答案建议使用类似

-agentlib:jdwp:transport=dt_socket,address=51887,suspend=n,server=y

但后来我得到这个:

Error occurred during initialization of VM
Could not find agent library: libjdwp:transport.jnilib (searched /Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Libraries:/System/Library/Java/Extensions:/Library/Java/Extensions:.)

然后,一个或另一个的上面,他们告诉你大概是“编辑配置>码头>远程和本地主机输入,51887”(端口号而异)后,

然而,在12,你的土地你选择远程后的页面有一个选项过多,并要求JNDI接口,它实际上表明上述JDWP参数另一个选项卡上没有JDWP端口。

研究的JNDI端口位,通常会得到指令,这样ARGS添加到您的命令行...

-Dcom.sun.management.jmxremote= \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false\

我已经做了太多,我可以看到端口1099的Java(使用lsof的),我可以telnet到1099举行,所以我知道JVM是听。 (我们会尽量不担心出现地说,打开一个端口,通过该人没有密码通过网络传送到您的计算机安装任意的Java代码的事实)

然而,在的IntelliJ每当我试图部署和调试它给了我下面的消息:

我可以看到Java RMI的通信超过1099时,我探听口1099使用Wireshark(但他们难以辨认)。 显然,通信不适合的IntelliJ理想,所以我想知道如果有件事情我需要做的码头让它发挥好。 请注意,更改Jetty的版本不是目前的选择,所以我们不要去那里:)。

我也试图消除神器,禁止令,并试图只需连接调试器,但它仍然给我相同的红色气球和错误信息,所以显然是必需的JNDI(端口1099)的一部分。

有谁看到的东西我做错了,或知道的别的东西我应该做的就是这个工作?

(我想知道,如果它是与此类似: http://youtrack.jetbrains.com/issue/IDEA-65746 JBoss的问题)

编辑:多亏了这个谷歌网上论坛帖子 ,我发现这是可能得到,如果你不指定编辑配置> +>码头>远程调试器连接,而是选择编辑配置> +>远程,但调试和部署是我后让只有一半的解决方案。

Answer 1:

码头remote配置需要时直接从IDEA使用开始码头,被自动执行的几个手动步骤local配置来代替。

如果你绝对必须使用remote配置,请尝试以下步骤:

Remote staging中的部分Server的IDEA码头远程运行配置的选项卡:

  • 指定Same file systemTypeHost
  • 指定路径<Jetty home>/contexts中的文件夹Local path的的字段contexts部分

(如果你有另一台机器比IDEA上运行码头的设置会有所不同,但我相信它是在同一台机器,你的情况)

通过下面的虚拟参数到码头的过程:

-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=<JNDI port>
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-DOPTIONS=jmx

<JNDI port>如在规定值应该是相同的JNDI port的IDEA码头运行配置的场

通过以下配置文件到码头处理(在命令行):

  • etc/jetty-jmx.xml
  • etc/jetty.xml

如果你需要调试,你也应该传递给来自IDEA码头运行配置采取码头过程的虚拟参数: Startup/Connection选项卡,选择Debug列表项下To debug remote server JVM ...

下面是示例命令行与所有必需的选项启动码头的过程:

java -Xdebug -Xrunjdwp:transport=dt_socket,address=60208,suspend=n,server=y -DSTOP.PORT=0 -Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -DOPTIONS=jmx -Dfile.encoding=UTF-8 -classpath start.jar etc/jetty-jmx.xml etc/jetty.xml 


文章来源: Deploy & Debug remote Jetty with IntelliJ 12