在想法的雄猫。 战争爆炸:服务器没有连接。 部署不可用

我正在尝试这个tutoial 。 我创build了新的项目并运行它。 TomCat开始了,但是什么也没有发生。 我可以在浏览器http://localhost:8080手动打开并查看TomCat主页。 这意味着服务器可以启动。 但是我无法打开index.jsp。 这是我的屏幕开始后: 截图正如你可以看到项目正在运行,但没有关于传递的环境variables的信息。 没有日志。

我使用TomCat 7.0.27

想法12.1.6

关于Opensuse 12.2

我的tomcat HOME文件夹是/usr/share/tomcat

有一个问题:Idea不能将conf文件从/ usr / share / tomcat / conf复制到/home/loco/.IntelliJIdea12/system/tomcat//conf。 我在/usr/share/tomcat and the problem gone.执行了chmod 777 */usr/share/tomcat and the problem gone.

我也改变了TomCat的开始方式。 这是默认值

 /usr/share/tomcat/bin/catalina.sh run 

我改变了

 /usr/share/tomcat/bin/catalina.sh start 

所有其他步骤都是按照教程完成的。

当tomcat启动脚本(通常是setenv.sh / setenv.bat )中的脚本覆盖JAVA_OPTS环境variables而不包含原始值时,会发生此问题。 IDEA将JAVA_OPTS设置为告诉tomcat在1099上监听状态和部署等事件的JMX请求。

setenv.sh中将会中断的一行示例:

 export JAVA_OPTS="-XX:MaxPermSize=512m -Xmx1024m" 

正确的版本:

 export JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=512m -Xmx1024m" 

windows setenv.bat文件中的相同示例行:

 set JAVA_OPTS=-XX:MaxPermSize=512m -Xmx1024m 

并纠正:

 set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=512m -Xmx1024m 

如果只从IDEA内部运行tomcat,则可以像其他人一样执行,并从setenv脚本中删除该行,并将jvm选项放入IDEA运行configuration中。

我通过在$ CATALINA_HOME / bin中删除了我的setenv.bat来解决这个问题。 这里是里面的设置:

 set JAVA_OPTS=-server -Xmx768m -XX:MaxPermSize=256M 

我不再需要这些选项,所以我只是删除文件。 正如prule的回答所说,您可以将这些选项移动到Intellij Runconfiguration。 删除文件后,部署IntelliJ内工作得很好。

编辑:为了更好的回答这个问题的原因, 请看下面的codelark答案 。 另外,使用他的方法,你可以保留你的setenv.sh / setenv.bat文件,如果你不仅从IntelliJ IDEA中运行你的Tomcat,这是非常有用的。

$CATALINA_HOME/bin删除setenv.sh也为我工作。 我正在运行tomcat7 / Ubuntu / IntelliJ 12

使用bin文件夹中的setenv.sh ,在IJ启动时我在日志中看到:

 /usr/local/tomcat/apache-tomcat-7.0.52/bin/catalina.sh run [2014-07-28 02:41:39,274] Artifact TomcatDebug:war exploded: Server is not connected. Press 'Deploy' to start deployment. Jul 28, 2014 2:41:40 PM org.apache.catalina.core.AprLifecycleListener init odonovanj@ubuntuj:/usr/local/tomcat/apache-tomcat-7.0.52$ sudo netstat -tulpn|grep 2928 tcp6 0 0 :::8080 :::* LISTEN 2928/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2928/java tcp6 0 0 :::8009 :::* LISTEN 2928/java 

删除后,在日志中我看到:信息:服务器启动在76毫秒连接到服务器[2014-07-28 02:44:35,847]工件TomcatDebug:战争爆炸:工件正在部署,请稍候… [2014- 07-28 02:44:36,512]神器TomcatDebug:战争爆炸:神器部署成功

 odonovanj@ubuntuj:/usr/local/tomcat/apache-tomcat-7.0.52$ sudo netstat -tulpn|grep 2346 tcp6 0 0 :::8080 :::* LISTEN 2346/java tcp6 0 0 :::50044 :::* LISTEN 2346/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2346/java tcp6 0 0 :::8009 :::* LISTEN 2346/java tcp6 0 0 :::1099 :::* LISTEN 2346/java tcp6 0 0 :::52268 :::* LISTEN 2346/java 

好像setenv.sh重写了$JAVA_OPTS ,干扰了在端口1099上运行的JNDI。

我不太了解这个理论,但是我得到了同样的错误。 等了一会儿,我收到一条消息:

工件部署期间出错。 详情请参阅服务器日志。

我发现它的日志文件大概意思是:“Tomcat localhost.log”,并有一个“NoClassDefFoundError”和“ClassNotFoundException”的堆栈跟踪。 我做了一个Maven刷新和一个“重build项目”,这就是诀窍。

 file->project structure->Project SDK 

然后重新configurationSDK。

这真的解决了我的问题。

(3.2)设置JRE_HOME或JAVA_HOME(必需)

这些variables用于指定Java运行时环境或用于启动Tomcat的Java Development Kit的位置。

JRE_HOMEvariables用于指定JRE的位置。 JAVA_HOMEvariables用于指定JDK的位置。

使用JAVA_HOME可以访问使用JRE_HOME时不允许的某些附加启动选项。

如果同时指定了JRE_HOME和JAVA_HOME,则使用JRE_HOME。

当我在catalina.bat中设置了JAVA_OPTS时,我遇到了这个问题。 删除这意味着tomcat按预期启动和部署。 JAVA_OPTS值可以在Intellij Runconfiguration中设置。

我有Tomcat 7.0.27的这个问题。 我升级到Tomcat 8.0.21,它解决了我的问题:)

尝试从Eclipse导入项目到IDEA时遇到此问题。

$CATALINA_HOME/bin没有setter.sh 。 IDEA中的Project StructureRun Configuration设置看起来不错,整个项目在eclipse中正常工作,但是在IDEA中显示这个错误。

我的解决scheme是,删除.idea文件夹,重新导入整个项目。 我不知道这个问题的准确原因是什么,但对我来说是有用的。

现在日志看起来像这样:

 /Library/Tomcat/bin/catalina.sh run [2015-09-22 12:40:57,906] Artifact bookstore:war exploded: Server is not connected. Deploy is not available. XXXXXX Connected to server [2015-09-22 12:40:58,848] Artifact bookstore:war exploded: Artifact is being deployed, please wait... XXXXXX [2015-09-22 12:41:07,862] Artifact bookstore:war exploded: Artifact is deployed successfully [2015-09-22 12:41:07,863] Artifact bookstore:war exploded: Deploy took 9,015 milliseconds 

一个简单的方法是更改​​该文件中的端口号:

 -Dcom.sun.management.jmxremote.port=1099 

注意这个端口,默认是1099,但是当使用JMX的时候,它可能会被你或者某个人改变,所以,只需简单地改变一下端口,那就OK了,不需要把它从tomcat的bin文件夹中删除。

还有一个原因,如果你的tomcatpath包含空格或'(',这个错误也会发生,请重命名你的tomcatpath。

如果您更改了/etc/hosts文件,则需要添加一行localhost YOU_USER_NAME