[解決済み] IntelliJ IDEAでエンドポイントタブが何も表示されない。"アプリケーションのJMXサービスURLの取得に失敗しました"
質問
Spring BootのWebサービスを持っていて、そのエンドポイントを見たいと思っています。 しかし、IntelliJでそれを実行すると、エンドポイントが表示されません。 エンドポイントウィンドウでは、エラーが表示されます。
Failed to check application ready state: AttachProvider for the vm is not found.
Press Refresh button to reinit ready state checking
SoapUIで問題なくアプリケーションを実行し、Webサービスをヒットさせることができるのですが、IntelliJでその機能を使いたいのです。エンドポイントタブやエンドポイントタブの更新ボタンをクリックすると、イベントログに、アプリケーション起動時に次のようなログエントリが表示されます。
PersonMicroserviceApplication: Failed to retrieve application JMX service URL
実行設定で "Enable JMX agent" にチェックを入れています。 これは私のpom.xmlです。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.microservice</groupId>
<artifactId>person-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
注:Jacksonは、私の会社のMavenリポジトリでは、セキュリティ上の懸念から隔離された依存関係としてマークされています(セキュリティ上の懸念が何であるかは分かりません)ので、私はjsonマッパーとしてgsonを使っています。
spring.http.converters.preferred-json-mapper=gson
application.propertiesにあるのは、mongodbへの接続文字列だけです。 他に何もないので、何か見落としているかもしれませんが、私が見たspringのドキュメントでは、include spring-boot-starter-actuator と check enable JMX agent と書いてあるだけでした。
これを有効にするために、何か設定的に足りないものがあるのでしょうか?私はWindows 10の64ビットで、Oracle JDK 8を使用しています。
解決方法を教えてください。
私もこの問題に遭遇し、ようやく答えを見つけました。
2018.3.4以降のIntelliJ IDEAでは、Spring Bootアクチュエータのエンドポイントのデータを取得するために、ローカルJMXコネクタを使用します。 ローカルJMXモニタリングにはいくつかの制限があり、特にSpring BootアプリケーションとIntelliJ IDEAのJVMのビット数が異なる場合、ローカルJMXコネクタのアドレスを取得することはできません。 もし、同じビット数のJVMでアプリケーションを実行できない場合は、Spring Bootの実行設定のVMオプションに以下を追加することで問題を解決することができます。
-Dcom.sun.management.jmxremote.port={some_port} -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
設定後。
jetbrains issue link: https://youtrack.jetbrains.com/issue/IDEA-204797
関連
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] プロトコルハンドラの初期化に失敗しました。
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] java.lang.ClassNotFoundException: クラス com.ibm.db2.jcc.DB2Driver が Worklight プラットフォームまたはプロジェクトに見つかりませんでした。
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] init-paramとcontext-param
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] ヘッドリカーシオンとテールリカーシオンの違い [重複]について