weblogic上查找JNDI的问题
我的源码:
//得到应用服务器的DataSource
public DataSource getDataSource(String ds)
{
String url = "t3://jacky:7001";//应用服务器名称、端口
Properties properties = new Properties();
//假设服务器用weblogic
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
properties.put(Context.SECURITY_PRINCIPAL, "system");
properties.put(Context.SECURITY_CREDENTIALS, "11111111");
try{
context = new InitialContext(properties);
Object obj = context.lookup(ds);
DataSource datasource = (DataSource)obj;
return datasource;
}
catch(NamingException ex)
{
ex.printStackTrace();
return null;
}
}
public static void main(String[] arg)
{
ServiceLocator a = ServiceLocator.getInstance();
System.out.println(a.getDataSource("myds"));
}
就是想得到weblogic上定义的datasource,我的datasource在JNDI中定义为"myds",抱错信息是:
java.lang.ExceptionInInitializerError
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:79)
at weblogic.common.internal.RMIBootServiceStub.getStub(RMIBootServiceStub.java:50)
at weblogic.security.acl.internal.Security.authenticate(Security.java:153)
at weblogic.jndi.WLInitialContextFactoryDelegate.authenticateRemotely(WLInitialContextFactoryDelegate.java:592)
at weblogic.jndi.WLInitialContextFactoryDelegate.pushSubject(WLInitialContextFactoryDelegate.java:529)
at weblogic.jndi.WLInitialContextFactoryDelegate.newContext(WLInitialContextFactoryDelegate.java:341)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:313)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:239)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:135)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:195)
at com.eccom.struts.jdbc.ServiceLocator.getDataSource(ServiceLocator.java:43)
at com.eccom.struts.jdbc.ServiceLocator.main(ServiceLocator.java:60)
Caused by: java.lang.NullPointerException
at weblogic.utils.classfile.utils.CodeGenerator.<clinit>(CodeGenerator.java:31)