3

リモート監視用に JBoss 4.2.2 と JConsole をセットアップしようとしています。これを行うために Web で見つけた多くのハウツーに従って、run.conf で次のオプションを設定して jmxremote を有効にする必要があります。(他の2つのオプションが認証を無効にしていることに気づきました)

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=11099"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false" 

次の例外が発生します。

13:06:56,418 INFO [TomcatDeployer] performDeployInternal :: deploy, ctxPath=/services, warUrl=.../tmp/deploy/tmp34585xxxxxxxxx.ear-contents/mDate-Services-exp.war/
13:06:57,706 WARN [AbstractServerConfig] getWebServicePort :: Unable to calculate 'WebServicePort', using default '8080'
13:06:57,711 WARN [AbstractServerConfig] getWebServicePort :: Unable to calculate 'WebServicePort', using default '8080'
13:06:58,070 WARN [AbstractServerConfig] getWebServicePort :: Unable to calculate 'WebServicePort', using default '8080'
13:06:58,071 WARN [AbstractServerConfig] getWebServicePort :: Unable to calculate 'WebServicePort', using default '8080'
13:06:58,138 ERROR [MainDeployer] start :: Could not start deployment: file:/opt/jboss-4.2.2.GA/server/default/tmp/deploy/tmp34585xxxxxxxxx.ear-contents/xxxxx-Services.war
java.lang.NullPointerException
at org.jboss.wsf.stack.jbws.WSDLFilePublisher.getPublishLocation(WSDLFilePublisher.java:303)
at org.jboss.wsf.stack.jbws.WSDLFilePublisher.publishWsdlFiles(WSDLFilePublisher.java:103)
at org.jboss.wsf.stack.jbws.PublishContractDeploymentAspect.create(PublishContractDeploymentAspect.java:52)
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:115)
at org.jboss.wsf.container.jboss42.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:97) 
...

私のアプリケーションは、このバグによるとJWSを使用しています:

https://jira.jboss.org/jira/browse/JBWS-1943

この回避策を提案します:

JAVA_OPTS="$JAVA_OPTS -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl"
JAVA_OPTS="$JAVA_OPTS -Djboss.platform.mbeanserver"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"

( https://developer.jboss.org/wiki/JBossWS-FAQ#jive_content_id_How_to_use_JDK_JMX_JConsole_with_JBossWS )

私はそれを試しましたが、アプリケーションが必要とするいくつかのスケジュールされたジョブに対して Schedulable を実装するクラスのみを含む sar ファイルを耳にデプロイしようとすると、次の例外がスローされます。

Caused by: java.lang.NullPointerException
at EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap.hash(ConcurrentReaderHashMap.java:298)
at EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap.get(ConcurrentReaderHashMap.java:410)
at org.jboss.mx.server.registry.BasicMBeanRegistry.getMBeanMap(BasicMBeanRegistry.java:959)
at org.jboss.mx.server.registry.BasicMBeanRegistry.contains(BasicMBeanRegistry.java:577)

ここからどこへ行くべきかについての提案はありますか?

編集:

次のバリエーションも試しました。

JAVA_OPTS="$JAVA_OPTS -DmbipropertyFile=../server/default/conf/mbi.properties  -DpropertyFile=../server/default/conf/mdate.properties -Dwicket.configuration=DEVELOPMENT"
JAVA_OPTS="$JAVA_OPTS -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl"
JAVA_OPTS="$JAVA_OPTS -Djboss.platform.mbeanserver"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"

JDK 1.6.0_01-b06 を使用しています

4

5 に答える 5

2

私は正直なところ、このリモーティングアプローチを試したことがありません。ただし、クライアントマシンとサーバーの両方がLinuxボックスまたはSSHを使用した同様の* nixである場合は、サーバーにアクセスssh -XCAしてサーバーでJConsole起動し、クライアントマシンでXポート転送を使用してGUIを表示できます。監視するサーバーJVMに対してローカルで実行されているJConsoleは、接続に問題がないはずです。

個人的にはそれは気の利いたトリックだと思いますが、JConsoleをJWS経由でリモート接続するという問題は実際には解決されないことに気づきました。

于 2008-09-24T20:47:49.213 に答える
0

最初に行うことは、JBoss /defaultの下の/tmpディレクトリと/workディレクトリの両方を削除し、WARを再デプロイすることです。そうでない場合は、JDKをアップグレードして最新バージョンの1.6を使用します。1.6.0_01はかなり古いです。

于 2009-01-07T15:47:37.377 に答える
0

これが関係しているかどうかはわかりませんが、JBoss は自分自身にリダイレクトする傾向があります。jboss.localdomain:3873 などのホストに接続し、ejb に接続する場合、JBoss は独自のホスト名を検索し、そこから取得したアドレスにリダイレクトする場合があります。パブリック ホスト名がある場合は、代わりに (jboss.publicdomain.com など) を検出し、クライアントに jboss.publicdomain.com:1099 に再接続するように指示します。DNS によっては、これがクライアントから到達可能なアドレスである場合とそうでない場合があります。

この問題にはさまざまなバリエーションがあり、ボーナスとして、最初の「接続チェック」が機能することがあるため、クライアント アプリはデプロイされますが、後で接続に失敗します。

于 2009-04-15T18:00:30.820 に答える