web-dev-qa-db-ja.com

デプロイメントエラー:Tomcatの起動に失敗しました。サーバーポート8080はすでに使用されています

Netbeansを使用してJavaプロジェクトを実行すると、次のエラーが表示されます。

Deployment error:
Starting of Tomcat failed, the server port 8080 is already in use.
See the server log for details.
        at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.Java:166)
        at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.Java:104)
        at org.Apache.tools.ant.UnknownElement.execute(UnknownElement.Java:288)
        at Sun.reflect.GeneratedMethodAccessor619.invoke(Unknown Source)
        at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
        at Java.lang.reflect.Method.invoke(Method.Java:597)
        at org.Apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.Java:105)
        at org.Apache.tools.ant.Task.perform(Task.Java:348)
        at org.Apache.tools.ant.Target.execute(Target.Java:357)
        at org.Apache.tools.ant.Target.performTasks(Target.Java:385)
        at org.Apache.tools.ant.Project.executeSortedTargets(Project.Java:1329)
        at org.Apache.tools.ant.Project.executeTarget(Project.Java:1298)
        at org.Apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.Java:41)
        at org.Apache.tools.ant.Project.executeTargets(Project.Java:1181)
        at org.Apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.Java:277)
        at org.Apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.Java:460)
        at org.netbeans.core.execution.RunClassThread.run(RunClassThread.Java:151)
Caused by: org.netbeans.modules.j2ee.deployment.impl.ServerException: Starting of Tomcat failed, the server port 8080 is already in use.
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance._start(ServerInstance.Java:1297)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.startTarget(ServerInstance.Java:1251)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.startTarget(ServerInstance.Java:1062)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.start(ServerInstance.Java:939)
        at org.netbeans.modules.j2ee.deployment.impl.TargetServer.startTargets(TargetServer.Java:428)
        at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.Java:143)
        ... 16 more
BUILD FAILED (total time: 4 seconds)

サーバーポートを8081に変更し、ツール->サーバーでポートをシャットダウンしてみました。正常に動作しますが、何か操作を行ってプロジェクトを実行すると、「展開エラー:Tomcatの起動に失敗しました。サーバーポート8081は既に使用されています

何が問題になりますか?

35
user660450

gotoコマンドプロンプト

netstat -aon

linux用

netstat -tulpn | grep 'your_port_number'

それはあなたのようなものが表示されます

 TCP    192.1.200.48:2053      24.43.246.60:443       ESTABLISHED     248
 TCP    192.1.200.48:2055      24.43.246.60:443       ESTABLISHED     248
 TCP    192.1.200.48:2126      213.146.189.201:12350  ESTABLISHED     1308
 TCP    192.1.200.48:3918      192.1.200.2:8073       ESTABLISHED     1504
 TCP    192.1.200.48:3975      192.1.200.11:49892     TIME_WAIT       0
 TCP    192.1.200.48:3976      192.1.200.11:49892     TIME_WAIT       0
 TCP    192.1.200.48:4039      209.85.153.100:80      ESTABLISHED     248
 TCP    192.1.200.48:8080      209.85.153.100:80      ESTABLISHED     248

ポートをバインドしているプロセスを確認します。上記の例では、その248今、あなたはそのプロセスの火を殺す必要があると確信しているなら

Linux:

kill -9 248

Windows:

taskkill /f /pid 248

そのプロセスを強制終了します

101
Jigar Joshi

プロキシサーバーの背後にいる場合、この問題が発生する可能性があります。同じ問題が発生し、設定->一般->プロキシ設定->プロキシなしによって解決されました。

「Tomcatのレディメッセージがプロキシに送信された可能性があります。IDEには到達しませんでした。」

見つかった@: https://netbeans.org/bugzilla/show_bug.cgi?id=23122

9
Mohamed Elwy

デプロイしようとしたときに同じ問題が発生しました。Tomcatインスタンスが実行されているため、Tomcatは再起動に失敗しました。 IDEを閉じて、TASk Managerをチェックします-実行中のjavawプロセスをすべて終了します。これで問題は解決しました。

6
Adi

実行中のプロセスを見てください。現在のTomcatインスタンスが停止していないようです。まだ実行中で、NetBeansは2番目のTomcatインスタンスを開始しようとします。それが例外の理由です。最初のインスタンスを停止するか、現在実行中のインスタンスにコードをデプロイするだけです

4
iSkriD

Netbeansでプロキシ設定を「プロキシなし」に変更することで、Tomcatの問題は解決しました。これを試してみてください。

3
surya

Linuxでこのスクリプトを使用して既存のTomcatを強制終了できる場合

#/bin/bash
if [ `whoami` != root ]; then
    echo "Please run this script as root or using Sudo"
    exit
fi
echo
echo "finding proceses that have name Java and established connections status"
echo
echo "Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name"
netstat --tcp  --programs  | grep "ESTABLISHED" | grep "Java"
echo
echo "finding proceses that use port 8080 or http-alt"
echo
netstat --tcp --programs | grep ':8080\|:http-alt'
echo -n "Do you wish to kill a process listed above?[Y/n]"
read choose
if [ "$choose" = "Y" ] || [ "$choose" = "y" ] || [ -z "$choose" ]
then
echo "enter pid to kill"
read procesId
kill -9 $procesId
fi
echo "done exiting"
exit 0
3
nkvnkv

Tomcatの以前のインスタンスまたは8080で実行されているプロセスを強制終了します。

ターミナルに移動して、これを実行します。

lsof -i :8080

出力は次のようになります。

COMMAND   PID   USER      FD   TYPE  DEVICE SIZE/OFF NODE NAME
Java    76746   YourName  57u  IPv6 0xd2a83c9c1e75      0t0    TCP *:http-alt (LISTEN)

PIDを使用してこのプロセスを強制終了します。

kill 76746

2
Balaji Dubey

プロジェクトを選択->右クリック-> clean and buildそして、プロジェクトを再度実行すると、問題が解決します。

複数のプロセスがポート8086などの同じポートをバインドする可能性があるため、その場合、PIDを持つポートに関連するすべてのプロセスを強制終了する必要があります。それは面倒かもしれません。

1
W.Jack

[Tomcat_home_dir] /conf/server.xml findでデフォルトのポートを変更します

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

に変更する

<Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
0
y.hussain

Tomcat 8.5。*をTomcat 7.0。* versionに置き換えることで解決しました。

0
shivaji bhosale

Tomcatポートアドレスを8084に、Shut Down Port8025に変更します。これで問題が解決します。

その他の場合、ウイルス対策プログラムが問題を引き起こす可能性があります。 K7トータルセキュリティでこの問題が発生しました。私の場合、K7 Firewallは8084ポートをブロックしていました。簡単な解決策は、K7ファイアウォールリストのNetbeansに例外を追加することです。

それを行うには、K7を開いて設定-> ファイアウォール設定-> アプリケーションタブを選択して検索しますNetbeans。

Netbeansを選択し、editリンクをクリックします。次の画面で、フルネットワークアクセスを許可するラジオボタンを選択します。

次に、Netbeansに移動してサーバーを起動します。

0
Shashanth