1

iamは、weblogicのmbeansのドキュメントに従い、サーバーにデプロイされた別のアプリケーションで実行されている作成済みのカスタムBeanにアクセスするためのWebアプリケーションを作成しようとしています。このコードを使用するiam

   InitialContext ctx = new InitialContext();
    MBeanServer    server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime");
    String serverName = System.getProperty("weblogic.Name");



         ObjectName on =new ObjectName("com.myCompanyName:Name=MyCutomBean,Type=MyCutomBean");
         boolean boolresult=(Boolean)server.invoke(on, "myMethod",
         new Object[]{"a","b","c"}
         ,new String[]{"java.lang.String","java.lang.String","java.lang.String"}); //throw exception
          out.print(result);
         out.print(boolresult);

カスタムBeanにアクセスしようとすると、次の例外が発生します。

件名にアクセスは許可されていません:principals = []、ResourceType:Nameアクション:execute、Target:myMethod

何が問題なのか?

4

1 に答える 1

2

私はついにこの例外を回避するための解決策を見つけました。次を使用してコンテキストを認証する必要があります。

Hashtable props = new Hashtable();
      props.put(Context.INITIAL_CONTEXT_FACTORY,
                "weblogic.jndi.WLInitialContextFactory");

      props.put(Context.SECURITY_PRINCIPAL,   "<userName>");
      props.put(Context.SECURITY_CREDENTIALS, "<password>");
      Context ctx = new InitialContext(props);  MBeanServer    server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime");

これが誰かを助けることを願っています

于 2012-01-13T08:54:22.617 に答える