Java 汤姆猫在想什么。战争爆发:服务器未连接。部署不可用

Java 汤姆猫在想什么。战争爆发:服务器未连接。部署不可用,java,tomcat,intellij-idea,Java,Tomcat,Intellij Idea,我正在试这个。我创建了一个新项目并运行了它。 TomCat开始了,但是什么也没发生。我可以在浏览器中手动打开http://localhost:8080并查看TomCat主页。这意味着服务器可以启动。但是,我无法打开index.jsp。这是启动后的屏幕: 正如您所看到的,项目正在运行,但是没有关于传递的环境变量的信息。 没有日志 我使用TomCat 7.0.27 想法12.1.6 关于Opensuse 12.2 我的tomcat主文件夹是/usr/share/tomcat 有一个问题: Idea无

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

我使用TomCat 7.0.27

想法12.1.6

关于Opensuse 12.2

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

有一个问题: Idea无法将conf文件从/usr/share/tomcat/conf复制到/home/loco/.IntelliJIdea12/system/tomcat//conf。 我在
/usr/share/tomcat中执行了
chmod 777*
,问题消失了。

我还改变了TomCat的启动方式。 这是默认值

/usr/share/tomcat/bin/catalina.sh run
我改成

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

所有其他步骤都按照教程进行。

我在catalina.bat中设置JAVA_选项时遇到了这个问题。删除它意味着tomcat按预期启动和部署。JAVA_OPTS值可以在Intellij运行配置中设置。

我不太了解这方面的原理,但我得到了相同的错误。等了一会儿,我收到一条消息说:

工件部署期间出错。有关详细信息,请参阅服务器日志


我找到了日志文件,它的意思大概是:“Tomcat localhost.log”,其中有一个堆栈跟踪,用于“NoClassDefFoundError”和“ClassNotFoundException”。我刷新了Maven和“重建项目”,成功了。

我通过删除$CATALINA_HOME/bin中的setenv.bat修复了这个问题。以下是其中的设置:

set JAVA_OPTS=-server -Xmx768m -XX:MaxPermSize=256M
我不再需要这些选项,所以我只是删除了文件。正如prule的回答所说,您可以将这些选项移动到Intellij运行配置。删除文件后,IntelliJ内部的部署工作正常


编辑:要更好地回答为什么这样做,请查看。另外,使用他的方法,您可以保留setenv.sh/setenv.bat文件,如果您不只是从IntelliJ IDEA内部运行Tomcat,这将非常有用。

$CATALINA\u HOME/bin
中删除
setenv.sh
也对我有用。 我正在运行tomcat7/Ubuntu/Intellij12

使用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:35847]工件TomcatDebug:战争爆发:正在部署工件,请稍候。。。 [2014-07-28 02:44:36512]工件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启动脚本集中的脚本(最常见的是
setenv.sh
/
setenv.bat
)发生问题重写
JAVA\u OPTS
环境变量,但不包括原始值。IDEA设置JAVA_选择告诉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运行配置中。

(3.2)设置JRE\u HOME或JAVA\u HOME(必需)

这些变量用于指定Java运行时环境或用于启动Tomcat的Java开发工具包的位置

JRE_HOME变量用于指定JRE的位置。JAVA_HOME变量用于指定JDK的位置

使用JAVA_HOME可以访问某些在使用JRE_HOME时不允许的其他启动选项


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

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

然后重新配置SDK


这确实解决了我的问题。

我在尝试将项目从eclipse导入IDEA时遇到了这个问题

$CATALINA_HOME/bin
中没有
setter.sh
。IDEA中的
项目结构
运行配置
设置看起来正常,整个项目在eclipse中正常工作,但在IDEA中显示此错误

我的解决方案是,删除
.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时,您或其他人可能会更改它,因此,只需更改端口即可,无需将其从tomcat bin文件夹中删除。

如果tomcat路径包含空白或'(”,也会发生此错误。请重命名您的tomcat路径。

如果您更改了
/etc/hosts
文件,则需要在其中添加一行
localhost您的用户名。

转到tomcat BIN目录 在命令提示符下运行以下命令

cd Tomcat-9991\bin

catalina.bat跑步

我得到的结果是

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
表明我的tomcat和JDK之间存在JAVA版本问题,我也设置了这个


我可以通过链接到正确版本的JDK来修复它。

是的,这对我来说也很有效。看起来像任何setenv.sh(或setenv.bat)将导致出现此问题。如果您没有setenv.sh,有时您可以在$CATALINA_HOME/bin/CATALINA.sh文件中找到JAVA_OPTS。太棒了!这就是问题所在。请将此标记为正确答案。您好,我也遇到了相同的错误,但我找不到setenv.s
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)