web-dev-qa-db-ja.com

NetbeansからTomcatの起動に失敗しました

Netbeans IDE 7.4からApache Tomcat 6を起動する際に問題があります(7.3バージョンでは同じトラブルが発生しました。この問題は、8.0などの他のバージョンにも存在します)。

私がしたこと:

  • インストール済みのTomcat 7を削除します(削除せずに、同じ問題が発生しました)
  • apache Tomcat Webサイトからダウンロードした新しいサーバーを追加します(バージョンApache-Tomcat-6.0.39、他のバージョンでは同じ問題が発生しました)
  • 私のサーバーの場所:D:\ Apache-Tomcat-netbeans
  • システム変数CATALINA_HOME:D:\ Apache-Tomcat-netbeans
  • システム変数Java HOME:C:\ Program Files\Java\jdk1.7.0_51 \
  • Tomcatユーザー:NetBeansに、Tomcatというパスワードを使用してTomcatと呼ばれる新しいユーザーを作成させます。サーバーの追加後に{Tomcat}\conf\Tomcat-users.xmlファイルを開くと、ユーザーに関する情報が表示されます。

    <user password = "Tomcat" roles = "manager、admin" username = "Tomcat" />

「開始」をクリックすると、「Tomcatの開始に失敗しました」と表示されます。

私の疑い:

  • 私はWindows 7で管理者として作業しているので、これはファイルに対する特権の問題ではないと思います。
  • プロキシを無効にしても役に立ちませんでした。
  • ログ:作成されるログファイルはlocalhost.2014-03-06.logのみで、完全に空です。
  • 「管理者として」Netbeansを起動しても役に立ちませんでした。
  • コマンドラインからはすべて大丈夫、通常モードまたはデバッグモードでの起動に問題はありません(catalina.bat jpda startまたはstartup.bat
56
liquide

少なくともNetBeansバージョン7.4〜8.0.2に影響します。最初にバージョン8.0から報告され、NetBeans 8.1で修正されました。 Tomcatバージョン(バージョン7.0.56〜8.0.28で確認済み)で問題が発生していました。

詳細は Netbeans bug#248182 として説明されています。

この問題は、次のエラー出力に言及する投稿にも関連しています。

「127.0.0.1 *」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。

ZipファイルからインストールされたTomcatの場合、Tomcat binディレクトリ内のcatalina.batファイルを変更して修正しました。

catalina.batファイルで以下の設定を見つけます。

:noJuliConfig
set "Java_OPTS=%Java_OPTS% %LOGGING_CONFIG%"

:noJuliManager
set "Java_OPTS=%Java_OPTS% %LOGGING_MANAGER%"

そして、以下のように二重引用符を削除して変更します

:noJuliConfig
set Java_OPTS=%Java_OPTS% %LOGGING_CONFIG%

:noJuliManager
set Java_OPTS=%Java_OPTS% %LOGGING_MANAGER%

変更を保存し、NetBeans内からTomcatを起動します。

159
Sudeepta

これが影響します:

  • 8.5.3以降のTomcatのすべてのバージョン。
  • 8.1までのNetbeansのすべてのバージョン(Netbeans 8.2で修正済み)。

これは、NetbeansがTomcatが正常に起動したにもかかわらず、起動したことを「認識」しないためです。

NetBeansでのバグ#262749 を提出しました。

Workaround

server.xmlファイルで、HTTP/1.1のConnector要素に、次の属性を追加します:server="Apache-Coyote/1.1"

例:

<Connector
  connectionTimeout="20000"
  port="8080"
  protocol="HTTP/1.1"
  redirectPort="8443"
  server="Apache-Coyote/1.1"
/>

原因

その理由は、8.5.3以前では、サーバーヘッダーをApache-Coyote/1.1として設定することがデフォルトでしたが、8.5.3以降、このデフォルトは空白に変更されたためです。明らかに、Netbeansはこのヘッダーをチェックします。

将来的には、この問題に対処するnetbeansの修正が期待されるかもしれません。

ドキュメントの変更までさかのぼることができました。

Tomcat 8.5

「http応答のサーバーヘッダーをオーバーライドします。設定すると、この属性の値はWebアプリケーションによって設定されたサーバーヘッダーをオーバーライドします。設定しない場合、アプリケーションによって指定された値が使用されます。サーバーヘッダーが設定されていません。」

Tomcat 8.

「http応答のサーバーヘッダーをオーバーライドします。設定すると、この属性の値は、TomcatのデフォルトおよびWebアプリケーションによって設定されたサーバーヘッダーをオーバーライドします。設定しない場合、アプリケーションによって指定された値が使用されます。値を指定すると、Apache-Coyote/1.1が使用されます。偏執狂的でない限り、この機能は必要ありません。」

これは、バージョン8.5.3以降、サーバー属性を明示的に追加する必要性を説明しています。

72
YoYo

また、プロキシ設定に問題がある可能性が高いです。

問題を開始してTomactを克服できなかった人は、NetBeansで[ツール]-> [オプション]-> [全般]タブでプロキシなしを選択してください。

助けてくれました。

18
Yan Pak

NetBeansがTomcatと対話できるようにするには、Tomcat-users.xmlファイルで適切に構成するために、netbeansのセットアップとしてユーザーが必要です。 NetBeansはこれを自動的に行うことができます。

つまり、Tomcat-users.xml内(${CATALINA_HOME}/confまたは${CATALINA_BASE}/confにあります)、

  1. (netbeansで選択された)ユーザーにscript-managerロールが追加されていることを確認してください

例、変更

<user password="Tomcat" roles="manager,admin" username="Tomcat"/>

<user password="Tomcat" roles="manager-script,manager,admin" username="Tomcat"/>
  1. manager-scriptロールが宣言されていることを確認してください

追加

<role rolename="manager-script"/>

実際、netbeansオンラインヘルプには次のように誤って記載されています。

ユーザー名-IDEがサーバーのマネージャーアプリケーションへのログインに使用するユーザー名を指定します。 ユーザーは管理者ロールに関連付けられている必要があります。 [開始/停止]メニューアクションやIDEからWebコンポーネントを実行するなどして、IDEがTomcat Webサーバーを初めて起動すると、IDEはTomcat-base-path/conf/Tomcat-users.xmlファイルに対してランダムに生成されたパスワード。 ([サービス]ウィンドウでTomcat Webサーバーインスタンスノードを右クリックし、[プロパティ]を選択します。[プロパティ]ダイアログボックスで、ベースディレクトリプロパティはbase-dirディレクトリを指します。)Tomcat-users.xmlの管理ユーザーエントリファイルは次のようになります:<user username="idea" password="woiehh" roles="manager"/>

ロールはmanagerではなくmanager-scriptである必要があります。

より完全なTomcat-users.xmlファイルの場合:

<?xml version='1.0' encoding='utf-8'?>
<Tomcat-users>
  <role rolename="manager-script"/>
  <role rolename="manager-gui"/>
  <user password="Tomcat" roles="manager-script" username="Tomcat"/>
  <user password="pass" roles="manager-gui" username="me"/>
</Tomcat-users>

なぜ展開エラーが発生するのですか? に別の素敵な投稿があります

2
Sampath T

私は同じ問題を抱えていましたが、上記の答えはどれもうまくいきませんでした。私にとっての解決策は、Tomcatにバンドルされている Manager web application を復元することでした。

1
lalo