質問: 新規にNetBeansからプロジェクトを作りサーバーを起動したら以下のようなエラーが出ました。 普段はフロントエンドをやっていて今回IDEなどで学習を兼ねて開発していました。 調べたこと http://stackoverflow.com/questions/11499263/jdwp-exit-error-agent-error-transport-init197-no-transports-initialized ここに載っているのと同じ事象なのですが、Macを使っている手前、やや環境に違いがあるのかなと思っています。 上記記事の回答では Notice the following start up parameter in your post. -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n There must be some other process occupied the 8787 port. 記事の先の方の文言が自分のところには出力されず、portの問題かどうかもわかりません。 そんな中、 やったこと ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/5bbd9f0eeb8bd10ca6a9cba012639066.png) domain1/config でportを変えました。 http://stackoverflow.com/questions/17317527/how-do-i-clear-an-address-for-glassfish-4-0-with-default-settings ここにある通りに。 どこに原因があってエラーが出ているのかわかりません。 環境 glassfish 4.1 Mac 10.12.1 NetBeansのバージョンとJavaのバージョン ``` Product Version: NetBeans IDE 8.0.2 (Build 201411181905) 更新: NetBeans IDEはバージョンNetBeans 8.0.2 Patch 2に更新されます Java: 1.8.0_111; Java HotSpot(TM) 64-Bit Server VM 25.111-b14 Runtime: Java(TM) SE Runtime Environment 1.8.0_111-b14 System: Mac OS X version 10.12.1 running on x86_64; UTF-8; ja_JP (nb) User directory: /Users/[myName]/Library/Application Support/NetBeans/8.0.2 Cache directory: /Users/[myName]/Library/Caches/NetBeans/8.0.2 ``` こちらがGlassfishserverから出力されたエラーです。 ``` Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=192m; support was removed in 8.0 objc[40946]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/bin/java (0x1023034c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x1024384e0). One of the two will be used. Which one is undefined. ERROR: transport error 202: bind failed: Address already in use ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750] FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) ``` こちらが、Project(run)で出力されたエラーです。 ``` ant -f /Users/[myName]/NetBeansProjects/Book -Dnb.internal.action.name=run -Ddirectory.deployment.supported=true -DforceRedeploy=false -Dnb.wait.for.caches=true -Dbrowser.context=/Users/[myName]/NetBeansProjects/Book run init: deps-module-jar: deps-ear-jar: deps-jar: library-inclusion-in-archive: library-inclusion-in-manifest: compile: compile-jsps: GlassFish Serverを起動中 GlassFish Serverの起動に失敗しましたサーバー管理ユーザー名およびパスワードのプロパティを確認してください。また、可能性がある他の原因についてサーバー・ログ・ファイルも確認してください。 /Users/[myname]/NetBeansProjects/Book/nbproject/build-impl.xml:1045: デプロイメント・エラー: GlassFish Serverの起動に失敗しましたサーバー管理ユーザー名およびパスワードのプロパティを確認してください。また、可能性がある他の原因についてサーバー・ログ・ファイルも確認してください。 詳細は、サーバーのログ・ファイルを参照してください。 ビルド失敗(合計時間: 8分 3秒) ``` ここで言われている先の画像です。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/6e2527c03c47760836ceccaecd5afd06.png) サーバーで言われているのとここで言われている箇所、2つの原因がありそうな気もしています。 どなたか原因を教えてください。
回答: エラーメッセージがポート設定を変更する前後どちらのものかはっきりわかりませんが・・・ > > Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=192m; support was removed in 8.0 > > > これはJava1.8のJVMに対して1.7以前の起動パラメーターを与えているための警告なので直接の原因ではないと思います。(設計が変わり以前permanent heapと呼ばれていた領域が別のものに置き換わったそうです) > > objc[40946]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/bin/java (0x1023034c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x1024384e0). One of the two will be used. Which one is undefined. > > > 同じクラスがCLASSPATH上の2か所に存在するという警告のようですが、本来は出るべきでないように思えるのですが問題に関係するかどうかは分かりません。どちらが起動されるかわからないのは混乱の元なので本件と関係なかったとしても原因を調べた方がよいと思いました。 > > ERROR: transport error 202: bind failed: Address already in use > > ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) > > JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750] > > FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) > > > 記事の先の方の文言が自分のところには出力されず、portの問題かどうかもわかりません > > > 「ポートが使用済みのためバインドできない」と出ているので衝突しているポート番号がレポートされるかどうかは問題ではなくこれが原因と考えるべきではないでしょうか。 stack overflowにあるとおり設定を変えたとのことですが、**もしどれが衝突しているか自分の環境を確かめずにそのまま真似したのだとしたら正しい対処とはいえません**。設定ファイルの変更前のどのポート番号が使用中かを調べ、変更後のポート番号が確実に未使用であることを確認すべきと思います。 stackoverflowの回答ページにも実際に衝突しているポートをnetstatで確認しようという解答が載ってます。Macだとlsofというコマンドなのかも知れません。(自分はMacわかりませんが、Macのバージョンを書いておくなどするとよりアドバイスが得られやすいかも知れません) > > Project(run)で出力されたエラー > > > 自分は知識不足のためユーザー名/パスワードの設定が正しいかどうかはわかりません。確信はないですが「可能性がある他の原因についてサーバー・ログ・ファイルも確認してください。」とあることから、サーバーの起動に失敗した際の典型的なミスがユーザー名/パスワードの設定なのでメッセージが出ているだけで「根本原因を切り分けた結果をレポートしているわけではない」ように思えました。