4

「mvn jetty:run」によって実行されるアプリケーションをプロファイリングしようとしています。VisualVM をそれに接続し、[Profile jetty crashes] をクリックすると、次のようになります。

Profiler Agent: Waiting for connection on port 5140 (Protocol version: 8)
Profiler Agent: Established local connection with the tool
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6da5e5d4, pid=5124, tid=5704
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) Client VM (14.2-b01 mixed mode windows-x86 )
# Problematic frame:
# V  [jvm.dll+0x1ae5d4]
#
# An error report file with more information is saved as:
# c:\dev\workspaces\credentials\credentialsgui\hs_err_pid5124.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Profiler Agent: JNI On Load Initializing...
Profiler Agent: JNI OnLoad Initialized succesfully

mvn jetty:run を使用して別のアプリケーションを実行しても同じことが起こります。

面白いことに、NetBeans のプロファイラー (VisualVM と同じである必要があります) を使用すると正しく動作しますが、これを修正するためのヒントがあれば VisualVM を使用したいと思いますか?

jdk 1.6 の VisualVM (ただし、ダウンロード可能なバージョンの前にも使用していました)。

4

1 に答える 1

6

VisualVM のドキュメントには、Java 6 を使用している場合、VM の起動時にクラス共有をオフにする必要があると記載されています。

JDK 6 で実行されているアプリケーションをプロファイリングするには、アプリケーションのクラス共有をオフにする必要があります。そうしないと、アプリケーションがクラッシュする可能性があります。クラス共有をオフにするには、アプリケーションを -Xshare:off 引数で開始します。

Maven は、Jetty の起動時にデフォルトでこのオプションを使用しないと思われます。

于 2009-12-03T22:31:58.490 に答える