我试图遵循mbeans的weblogic文档并创建一个Web应用程序 访问在服务器中部署的另一个应用程序中运行的已创建的自定义bean。 我使用这个代码
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时,我遇到了这个例外:
在ResourceType上不允许使用subject:principal = [],名称操作:执行,目标:myMethod
可能是什么问题?
答案 0 :(得分: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");
希望这会有所帮助