web-dev-qa-db-ja.com

8080ポートは、Spring Tool Suite IDEからプロジェクトを再デプロイしようとするときにすでに問題を起こしました

Spring Tool Suite内でSpringプロジェクトを変更しようとすると、奇妙なことがあります。最初のロード(デプロイ)ですべてが正常になり、アプリケーションはlocalhost:8080でコンパイルおよび実行されます

コード内の何かを変更して再デプロイしようとすると(もう一度実行-Spring Bootアプリとして実行)エラーメッセージが表示されます

***************************アプリケーションを開始できませんでした


説明:

ポート8080でリッスンするように構成されたTomcatコネクターを開始できませんでした。ポートがすでに使用されているか、コネクタが正しく構成されていない可能性があります。

アクション:

コネクタの構成を確認し、ポート8080でリッスンしているプロセスを特定して停止するか、このアプリケーションを別のポートでリッスンするように構成します。

2016-10-19 00:01:22.615 INFO 10988 --- [main] ationConfigEmbeddedWebApplicationContext:Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3023df74:開始日[Wed Oct 19 00:01:19 CEST 2016];コンテキスト階層のルート2016-10-19 00:01:22.616 INFO 10988 --- [main] o.s.j.e.a.AnnotationMBeanExporter:シャットダウン時にJMXに公開されたBeanの登録解除

そのポートでプロセスを手動でシャットダウンすると、すべてが再び正常に機能しますが、これはSpringアプリを再デプロイする正しい方法ではありません。ここで何か間違ったことをしていますか?

:: Spring Boot ::(v1.4.1.RELEASE)を使用しています

追伸コードを変更した後、ページを自動的にリロードするように何らかのホットスワップメカニズムをセットアップできることは承知していますが、今のところはまずこの問題を解決したいと思います。

あらゆる種類のヘルプや情報をありがとう。

31
milan.latinovic

赤いボタンの助けを借りてIDEでプロセスの実行を停止しても、時々同じエラーが発生します。

次の手順で解決されましたが、

  1. 使用可能なポートで実行されているプロセスを確認します

    netstat -ao |find /i "listening"

    フォローする

    TCP 0.0.0.0:7981 machinename:0 LISTENING 2428 TCP 0.0.0.0:7982 machinename:0 LISTENING 2428 TCP 0.0.0.0:8080 machinename:0 LISTENING 12704 TCP 0.0.0.0:8500 machinename:0 LISTENING 2428

    つまり、ポート番号と何プロセスIDがリッスンしている

  2. ポート番号で実行中のプロセスを停止します(この場合は8080で、プロセスIDは12704です)

    Taskkill /F /IM 12704(注:正しいプロセスIDに言及)

私の問題はこれで解決されました、これが役立つことを願っています!

53
rdj7

Macユーザーの場合(OS X El Capitan):localhost:8080が実行されているポートを強制終了する必要があります。これを行うには、ターミナルで2つのコマンドを実行する必要があります。

Sudo lsof -i tcp:8080

-15 PIDを殺す

NB! PID IS最初のコマンドによって提供される番号。

最初のコマンドは、localhost:8080のPIDを提供します。 2番目のコマンドのPIDを、localhost:8080で実行されているプロセスを強制終了するために最初のコマンドで指定したPIDに置き換えます。

20
jsog

現在のプロセスを停止して、新しいプロセスを実行する必要があります。 Eclipseでは、このボタンを押してアプリケーションを再起動できます。 enter image description here

17
lukle

私の場合、アプリケーションがsslのキーストアにアクセスできなかったため、エラーが発生しました。

Rootユーザーとしてアプリケーションを起動すると、問題が修正されました。

16
Registered User

理由は、1つのサーブレットコンテナがポート8080で既に実行されており、ポート8080で別のサーブレットコンテナを実行しようとしているためです。

  1. 使用可能なポートで実行されているプロセスを確認します。

  2. ここで、アプリケーションを再起動または停止してみてください。

タスクマネージャに移動して、Java(tm)プラットフォームse binary画像を表示するにはここをクリックhttps:/ /www.google.com/search?q=what+is+Java(tm)+platform+se+binary&oq=what+is+Java(tm)+platform+se+binary&aqs=chrome..69i57.26349j1j7&sourceid=chrome&ie= UTF-8

  1. application.propertiesファイルセットserver.port = 0に移動します。これにより、Spring Bootは起動するたびにランダムな空きポートを使用します。
9

「埋め込みサーブレットコンテナの起動に失敗しました。次に、application.propertiesファイルに移動して、このプロパティ「server.port = 8090」を追加します。

実際、スプリングブートのデフォルトポートは8080です。そのポートに何か他のものがある場合、上記のエラーが発生します。したがって、application.propertiesファイルに「server.port = 8090」を追加して、スプリングブートを他のポートで実行するように要求しています。

9
Hari Tummala

この問題を解決するには、2つの方法があります。最初にオプション1を試し、それが機能しない場合は、オプション2を試し、問題を解決します。

1)コンソールの右上隅に赤いボタンがあります。このポートで既に実行されているスプリングブートアプリケーションを停止するには、赤いボタンをクリックして終了します。

2)赤いボタンがアクティブになっていない場合は、コンソールを右クリックして、すべて終了/切断を選択する必要があります。お役に立てれば。

ボーナスヒント:-選択した別のポートでサーバーを実行する場合は、mavenプロジェクトのリソースフォルダーにapplication.propertiesという名前のファイルを作成し、server.port = 3000と記述して、ポート3000でアプリケーションを実行します。

7
Shubham Chopra

これは、埋め込みサーブレットコンテナのポートが使用されているために発生する一般的な起動エラーです。

ポート8080がすでに使用されていたため、埋め込みTomcatコンテナを開始できませんでした。

ポート8080でリッスンしているプロセスを特定して停止するか、別のポートでリッスンするようにこのアプリケーションを構成します(application.properties file)。

7
georges van

ここで何か間違ったことをしていますか?

はい、そうです。 1つのサーブレットコンテナがポート8080で既に実行されており、ポート8080で別のサーブレットコンテナを再度実行しようとしています。

サーバーを再起動する(STSにボタンがある場合)または停止して起動する

4
so-random-dude

application.propertiesフォルダーの下にsrc/main/resourcesファイルを作成し、コンテンツを

server.port = 8084

順調です。ただし、実行前に毎回、IDEの上部にある赤いボタンをクリックして、最初にアプリケーションを停止する必要があります。 enter image description here

または試す

コンソールを右クリック>終了/すべて切断をクリック

4
MangduYogii

ブラウザで「localhost:8080」を開き、このポートで実行されているものを確認します。私はそれをして、Oracle 10g XEがバックグラウンドで実行されているのを見つけたので、start-> Servicesに行き、すべてのOracleサービスを停止しました。その後、IntelliJでmvnw spring-boot:runをやり直し、魔法のように実行します。

2
samivic

アプリケーションをSpring Bootアプリケーションとして再実行するよりも、Eclipse上のすべてのサービスを停止するには、赤いボタンをクリックするだけです-これでうまくいきました。

2
besartm

こんにちは、application_propertiesにSERVER_PORT = 8090として単純な行を作成すると、問題が解決しました。

2
mohan krishna

Linuxマシンで、bashスクリプトを保存して実行します。ポート8080を解放する場合は、プロンプトが表示されたら8080を入力します

echo "Enter port number to be closed :: "
read port
Sudo kill $(Sudo lsof -t -i:$port)
2
singh30

そのポートのバックグラウンドにはいくつかのプロセスが残っており、いくつかの理由でこの問題が発生する可能性がありますが、8080またはSpringに関連するプロセスを終了すると簡単に解決できます。

Linuxを使用している場合、プロセスを終了する手順があります。

  1. ターミナルを開き、コマンド「htop」を入力します
  2. f3キーを押します(検索できるようになります)
  3. 8080に結果がなかった場合は「8080」と入力し、その後「spring」を試行します
  4. 次にF9(KILL)を押し、「9」(SIGKILL)を押します

これにより、8080ポートに残っているプロセスが強制終了され、アプリケーションを実行できます。

1
twinster

Spring Bootアプリケーション(Spring Starterプロジェクトを使用)では、Tomcatサーバーを使用してServer.xmlにポートを更新し、application.property(insrc/main/resources)にこのポートを追加します。コードはserver.port = 8085 =

そして、Mavenプロジェクトを更新してからアプリケーションを実行します

1
Shubham Kumawat

Linuxシステムを使用している場合は、次のコマンドを使用します。

fuser -k some_port_number/tcp-そのプロセスを強制終了します。

サンプル:-

フューザー-k 8080/tcp

0

変更を実装するために開発時に毎回手動でアプリケーションを起動する必要はありません。「spring-boot-devtool」maven依存関係を使用します。

自動再起動:モジュールを使用するには、Maven POMに依存関係として追加するだけです。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>

Spring-boot-devtoolsモジュールが含まれている場合、クラスパスファイルを変更すると、アプリケーションの再起動が自動的にトリガーされます。再起動を高速に保つためにいくつかのトリックを行うため、多くのマイクロサービススタイルのアプリケーションでは、この手法で十分な場合があります。

0
MangduYogii