Intellij内でwebappをビルド、デプロイ、デバッグしようとしています。
this answerを使用してTomcatをセットアップし、サーバーを実行することができました。問題は、deployment
タブで定義されているにもかかわらず、webappがデプロイされていないことです。
次のエラーが表示されます。サーバーが接続されていません。デプロイは利用できません
戦争をコピーしてサーバーを起動すると、すべて正常に動作します。ポート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.
私の場合、この問題は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変数がこの設定を削除しました。
IntelliJ構成を設定して、バックグラウンドで実行していた最新バージョンのTomcatを実行すると、問題が解決しました。
IntelliJ 14でセットアップを行っていて、別のマシンで作業しているときに、まったく同じエラーが発生しました。問題の原因は異なる可能性がありますが、私の場合、根本的な原因は次のとおりです。
基本的に、2つの異なるバージョンのTomcatがマシンにインストールされていました。 Tomcat 8はポート8090でバックグラウンドで実行されていましたが、デバッガインスタンスのポートを8091に設定したにもかかわらず、次のエラーが表示されました。
サーバーが接続されていません。デプロイは利用できません。
および次の警告:
1:21:18 PM localhost:8091に同時にバインドして接続できます-アプリケーションサーバーは、おそらくポート上の他のソフトウェアと競合します
1:32:39 PM実行停止前にApplication Serverが接続されていません。理由:localhost:1099でサーバーにpingできません
IntelliJ構成を設定して、バックグラウンドで実行していた最新バージョンのTomcatを実行すると、問題が解決しました。
ヒント:デバッグモードでアプリケーションを実行すると、かなり遅くなる可能性があります。通常、2つのインスタンスを実行しています。 1つはデバッグモードで、もう1つは2つの異なるポートの通常モードです。このようにして、Webアプリケーションの通常のインスタンスと、より詳細な調査のためのデバッガーインスタンスを作成できます。
お役に立てれば。
(3.2)JRE_HOMEまたはJava_HOMEの設定(必須)
これらの変数は、Tomcatを起動するために使用されるJava Runtime EnvironmentまたはJava Development Kitの場所を指定するために使用されます。
JRE_HOME変数は、JREの場所を指定するために使用されます。 Java_HOME変数は、JDKの場所を指定するために使用されます。
Java_HOMEを使用すると、JRE_HOMEの使用時には許可されない特定の追加の起動オプションにアクセスできます。
JRE_HOMEとJava_HOMEの両方が指定されている場合、JRE_HOMEが使用されます。
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
もう1つの考えられる理由は、スタンドアロンWildflyを手動で実行するアプリサーバーであり、deployment
フォルダーにパッケージを手動でコピーすることです。
この場合、Intellijは(手動でWildflyを実行している場合でも)Wildflyを実行し、アプリのパッケージをコピーして展開しようとします。しかし、deployment folder
には既にそのようなパッケージがあります。
myapp.ear
またはmyapp.war
を.../wildfly/standalone/deployments/
から削除し、Intellijから実行またはデバッグを削除します。