尝试使用 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.earmyapp.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 部署时未连接服务器的主要内容,如果未能解决你的问题,请参考以下文章

测试 WCF 时未列出服务

通过 ngrok 连接时未设置 Cookie

尝试使用本地 spring 云连接器/local_configuration_connector 时未找到合适的云连接器

登录服务器时未登录服务器

使用 FTP 将 intellij maven 项目部署到 azure Web 应用程序,出现 500 服务器错误

连接丢失时未检测到 QNetworkReply 错误信号