Java 汤姆猫在想什么。战争爆发:服务器未连接。部署不可用
我正在试这个。我创建了一个新项目并运行了它。 TomCat开始了,但是什么也没发生。我可以在浏览器中手动打开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无
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"
windowssetenv.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)