12

RackSpace 云服务器 Ubuntu-12.04、Intellij Idea-11.1.2、Windows-8、Tomcat-7.0.26、JDK-6。

在 Intellij Idea 上,当我尝试在远程 Tomcat 7 服务器上运行 jsf 项目时,它说:

运行服务器名时出错:无法连接到IP 地址:1099

似乎问题是关于 1099 的 JNDI 端口,但我猜我无法激活它。Tomcat配置是……。像那样:

在此处输入图像描述

我试过什么?

在服务器端设置 CATALINA_OPTS 或 JAVA_OPTS:

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

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

但是这个没有用,有什么想法吗?

4

1 回答 1

17

我对我的问题的回答:

远程部署的正确方法是在远程服务器上编辑 JAVA_OPTS 环境变量。只需输入以下命令:

export JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

如果这行不通,并且如果您不热衷于通过 Intellij Idea 部署您的网站,那么我已经找到了解决此问题的方法。为了能够在 Tomcat 下运行您的网站,您可以/应该以.war文件的形式获取工件。

它可以在 Intellij 中从项目设置(ctrl+alt+shift+s)中完成,然后点击加号按钮并添加新工件(web:application archieve)

在 Intellij 中获取战争文件

重建工件后,.war文件可以在project-folder\out\artifacts. 接下来,您应该将此文件放入您的tomcat/webapps文件夹中。

例如,如果您使用的是 Tomcat-7,我的意思是该文件夹存在于/var/lib/tomcat7/webapps. 在复制您的之前.war file,您应该将其重命名为ROOT.war. 这提供了直接通过 访问您的站点http://youripaddress:8080。重启Tomcat7服务后即可访问该站点。

但尚未完成,您可以远程调试项目,就像在本地机器上使用 Intellij Idea 调试项目一样。在 Idea 中打开运行/调试配置,点击加号按钮,必须有Remote. 这是为 JBoss、Glassfish 以及 Idea 等应用程序服务器调试项目的方法。输入您的主机和端口号,选择您的项目作为模块。

在开始调试之前,正如 Intellij 所说,您应该为服务器 JVM 提供以下参数:

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

为了能够在 Ubuntu 和 Tomcat-7 中执行此操作,请修改文件usr/share/tomcat7夹中的 catalina.sh 文件。我在该行的上方插入了参数if [ -z "$LOGGING_MANAGER" ]; then。它必须位于文件的中间部分。然后您应该能够使用 Intellij Idea 调试您的项目。

于 2013-01-01T12:22:11.420 回答