您的位置:首页 > 其它

weblogic.jndi.WLInitialContextFactory

2015-12-11 09:10 701 查看
Create data source failure:javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory [Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory]

[ERROR] error:ApplicationException e (services.property.BrmProperty)

com.gzdx.util.exception.ApplicationException: database error

at com.gzdx.services.org.db.DBOrgService.getCompanyListInSystem(DBOrgService.java:1046)

at com.gzdx.services.property.BrmProperty.getAllConfigurationByCmpyHash(BrmProperty.java:76)

at com.gzdx.services.system.Manager.createConfigurationHash(Manager.java:245)

at com.gzdx.services.system.Manager.start(Manager.java:234)

at com.gzdx.services.system.StartupServlet.init(StartupServlet.java:40)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)

at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)

at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3951)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4225)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)

at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)

at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)

at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)

at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)

at org.apache.catalina.core.StandardService.start(StandardService.java:450)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)

at org.apache.catalina.startup.Catalina.start(Catalina.java:551)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

开始以为是weblogic.jar文件问题,或者环境问题,反复试验。原来是因为连接池问题。刚刚从服务器down下的src,因为服务器是weblogic的,所以连接池是weblogic的写法。而本地用的是tomcat的服务,修改成tomcat的写法重新编译ok.如下:

1、weblogic写法:

JNDI_Name = poolConfig.getPoolName();

Context ctx = null;

Hashtable ht = new Hashtable();

ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");

ht.put(Context.PROVIDER_URL, "t3://127.0.0.1:80");

try {

ctx = new InitialContext(ht);

ds = (DataSource)ctx.lookup (JNDI_Name);

} catch (Exception e)

{

System.out.println("Create data source failure:"+e);

} finally

{

try{

ctx.close();

} catch (Exception e)

{

}

}

2、tomcat写法:

poolName = poolConfig.getPoolName();

DB_Driver_Name = poolConfig.getDbDriver();

initPoolSize = Integer.parseInt(poolConfig.getInitialPoolSize());

max_con = Integer.parseInt(poolConfig.getMaxSize());

poolIncrement = Integer.parseInt(poolConfig.getPoolIncrement());

retryTimes = Integer.parseInt(poolConfig.getRetry());

connectionRefresh = Integer.parseInt(poolConfig.getRefresh());

connectionTimeout = Integer.parseInt(poolConfig.getTimeout());

int urlIndex = 0;

if ((urlIndex = poolConfig.getUrl().indexOf("@")) == -1) {

throw new SQLException(

"+++ Connection pool URL formation incorrect.");

}

DB_URL = poolConfig.getUrl().substring(urlIndex + 1);

Login_Name = poolConfig.getDbUserName();

Login_Password = poolConfig.getDbPassWord();

// Init JDBC driver

try {

Class.forName(poolConfig.getDbDriver());

jdbc_connected = true;

} catch (Exception e) {

Manager.log.error(this, "Create new connection failed, driver "

+ DB_Driver_Name + " not found");

jdbc_connected = false;

}

con = new Connection[max_con];

timeStamp = new Calendar[max_con];

lastUsedTimeStamp = new Calendar[max_con];

available = new boolean[max_con];

// ������������,������������������

for (int i = 0; i < initPoolSize; i++) {

con[i] = createConnection();

available[i] = true;

timeStamp[i] = Calendar.getInstance();

timeStamp[i].add(Calendar.MINUTE, connectionRefresh);

lastUsedTimeStamp[i] = Calendar.getInstance();

lastUsedTimeStamp[i].add(Calendar.MINUTE, connectionTimeout);

openNum++;

availNum++;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: