尝试使用 intellij 部署时未连接服务器
Posted
技术标签:
【中文标题】尝试使用 intellij 部署时未连接服务器【英文标题】:Server is not connected when trying to deploy with intellij 【发布时间】:2014-09-28 15:33:27 【问题描述】:我正在尝试在 intellij 中构建、部署和调试我的 webapp。
我已经使用this 答案设置了我的tomcat,并且我能够让服务器运行。问题是我的 webapp 没有被部署,尽管它是在 deployment
选项卡中定义的。
我收到以下错误: 服务器未连接。部署不可用
如果我复制战争并启动服务器,一切正常。使用端口 8080 和 8000。
我做错了什么?
以防万一,该项目是使用 Maven 和 Spring 构建的
我为服务器添加了运行/调试配置:
服务器标签
部署标签
调试控制台输出:
D:\development\infra\appServers\apache-tomcat-7.0.47\bin\catalina.bat run
[2014-08-05 01:23:11,413] Artifact devstage:war exploded: Server is not connected. Deploy is not available.
Using CATALINA_BASE: "C:\Users\chaim\.IntelliJIdea13\system\tomcat\Unnamed_devstage_4"
Using CATALINA_HOME: "D:\development\infra\appServers\apache-tomcat-7.0.47"
Using CATALINA_TMPDIR: "D:\development\infra\appServers\apache-tomcat-7.0.47\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.7.0_45"
Using CLASSPATH: "D:\development\infra\appServers\apache-tomcat-7.0.47\bin\bootstrap.jar;D:\development\infra\appServers\apache-tomcat-7.0.47\bin\tomcat-juli.jar"
Aug 05, 2014 1:23:12 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.29 using APR version 1.4.8.
Aug 05, 2014 1:23:12 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Aug 05, 2014 1:23:12 PM org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized (OpenSSL 1.0.1e 11 Feb 2013)
Aug 05, 2014 1:23:12 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-apr-8080"]
Aug 05, 2014 1:23:12 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
Aug 05, 2014 1:23:12 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 902 ms
Aug 05, 2014 1:23:12 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 05, 2014 1:23:12 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
Aug 05, 2014 1:23:12 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Aug 05, 2014 1:23:12 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Aug 05, 2014 1:23:12 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 35 ms
[2014-08-05 01:23:21,363] Artifact devstage:war exploded: Server is not connected. Deploy is not available.
Aug 05, 2014 1:23:22 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\development\infra\appServers\apache-tomcat-7.0.47\webapps\manager
[2014-08-05 01:23:38,311] Artifact devstage:war exploded: Server is not connected. Deploy is not available.
【问题讨论】:
看看可能的重复:***.com/questions/20163910/… 那不是重复的... 【参考方案1】:另一个可能的原因可能是您手动运行了一个独立的 Wildfly 应用服务器并手动将您的包复制到其 deployment
文件夹中。
在这种情况下,Intellij 会尝试运行 Wildfly(即使您已停止手动运行 Wildfly)并复制应用程序包以进行部署。但是deployment folder
已经有这样的包了。
从 .../wildfly/standalone/deployments/
中删除 myapp.ear
或 myapp.war
并从 Intellij 中运行或调试。
【讨论】:
【参考方案2】:我在尝试将项目从 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
【讨论】:
您的日志仍然显示您有问题:服务器未连接。部署不可用。【参考方案3】:就我而言,这个问题是由于 catalina.bat(或 catalina.sh)中定义的 JAVA_OPTS 变量造成的。
我只注释了 catalina.bat 的第一行,一切都开始工作了。 这是行:
set "JAVA_OPTS=-Xmx1024M -XX:MaxPermSize=512m -Djava.util.logging.config.file=logging.properties -Djava.net.preferIPv4Stack=true"
要发表评论,请将rem
放在前面。 rem
是在 windows .bat 文件中注释一行的方法。
我想这条线与 IntelliJ JAVA_OPTS 设置冲突。事实上,IntelliJ 尝试在 tomcat 上设置一个端口用作调试器,但是 catalina.bat JAVA_OPTS 变量删除了这个设置。
【讨论】:
我在使用旧版软件时遇到了同样的问题。就我而言,JAVA_OPTS 在 setenv.sh 中被覆盖。这是用户定义的环境变量的默认位置。拯救了我的一天!【参考方案4】:(3.2) 设置 JRE_HOME 或 JAVA_HOME(必填)
这些变量用于指定 Java 运行时环境或用于启动 Tomcat 的 Java 开发工具包的位置。
JRE_HOME 变量用于指定 JRE 的位置。 JAVA_HOME 变量用于指定 JDK 的位置。
使用 JAVA_HOME 可以访问某些在使用 JRE_HOME 时不允许的附加启动选项。
如果同时指定了 JRE_HOME 和 JAVA_HOME,则使用 JRE_HOME。
【讨论】:
【参考方案5】:简而言之:
将我的 IntelliJ 配置设置为运行我在后台运行的最新版本的 Tomcat 后,我的问题得到了解决。
简要说明:
当我进行设置并在另一台机器上工作时,我的 IntelliJ 14 中出现了完全相同的错误。 虽然问题的根源可能不同,但就我而言,这是根本原因:
我的机器上基本上安装了两个不同版本的 Tomcat。 Tomcat 8 在端口 8090 上在后台运行,尽管将我的调试器实例端口设置为 8091,但它给了我以下错误:
服务器未连接。部署不可用。
以及以下警告:
下午 1:21:18 可以同时绑定和连接到 localhost:8091 - 应用服务器可能会与端口上的其他一些软件竞争
1:32:39 PM 运行配置停止前未连接应用服务器,原因: 无法在 localhost:1099 ping 服务器
将我的 IntelliJ 配置设置为运行我在后台运行的最新版本的 Tomcat 后,我的问题得到了解决。
提示:在调试模式下运行应用程序可能会减慢它们的速度。我通常有两个实例在运行。一个处于调试模式,一个处于正常模式,位于两个不同的端口。这样我就可以拥有我的 Web 应用程序的普通实例以及调试器实例,以进行更深入的调查。
希望这会有所帮助。
【讨论】:
以上是关于尝试使用 intellij 部署时未连接服务器的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用本地 spring 云连接器/local_configuration_connector 时未找到合适的云连接器