2

MXBeanの起動中に、メソッドSampleServiceMXBean.registerにオープンタイプに変換できないパラメーターまたはリターンタイプがあるというエラーが表示されます。エラーメッセージによると、私のMXBeanが複合クラスに追いつくことができないことは明らかです。

より良い方法で物事を説明する:これが私のMXBeanインターフェースコードです

 public interface SampleServiceMXBean {
      public boolean register(FileInfo fi) throws IOException;   //FileInfo is a not Open Type(Composite)
 }

MXBeanサーバーコードの起動

 MBeanServer beanServer= ManagementFactory.getPlatformMBeanServer();
 ObjectName sampleName = new ObjectName("com.me.core.services:fileExt=SampleService");
 beanServer.registerMBean(sampleService,sampleName);

さて、私が読んだ限りでは、mxbeanは複合型パラメーターをサポートしていると言われていますが、オープン型のみをサポートする手段とは異なり、なぜこのエラーが発生するのですか?複合型オブジェクトを使用するのは適切な方法ではないと思います。開始する方法についてのアイデア...

4

2 に答える 2

0

これらのオブジェクトをシリアル化するのを忘れていると思います。それをやってみてください、私が知っている限り、オープンタイプはMXBEANによって適切に処理されます

于 2013-04-04T07:45:03.383 に答える
0

FileInfoがJavaBeanの場合、JMXはそれを処理できるはずです。ただし、データメンバーを最終的に作成し、コンストラクターを介して設定する場合は、ConstructorParametersアノテーションを使用する必要があります。

public class FileInfo {
   private final String filename;
   private final String filetype;

   @ConstructorProperties({"filename", "filetype"})
   public FileInfo(String filename, String filetype) {
      this.filename = filename;
      this.filetype = filetype;
   }

   public String getFilename() {
     return filename;
   }

   public String getFiletype() {
     return filetype;
   }
}
于 2013-07-26T05:19:59.600 に答える