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++;
}
[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++;
}
相关文章推荐
- btsync 分享资源
- pushd,popd,dirs,cd -让切换目录更方便
- 移动端 HTML5 页面常见问题 —— 样式篇
- ubuntu系统下安卓源码的下载
- eclipse中.project文件和.classpath文件详解
- 第十五周项目二-----用哈希法组织关键字之线性探测法
- 内网外网ip之间的通联关系
- 第十三周项目一:prim算法的验证
- 我
- 多维数组练习题
- 15 Which tasks are run automatically as part of the Automated Maintenance Task by default? (Choose a
- 为什么别人都不爱跟你聊天?
- Java之控制语句
- hadoop2.7.1使用dfs命令的错误(bin/hdfs dfs -mkidr input的错误)
- NOR-FLASH驱动文档(SST39VF1601)
- 程序猿都没对象,JS竟然有对象?<转>
- jQuery点击改变class并toggle及toggleClass()方法定义用法
- ios开发的设计模式
- 第十二周项目1-图基本算法库
- 【Codeforces Round 269 (Div 2)C】【暴力】MUH and Sticks 纸牌搭楼n张牌恰好搭楼数