public static DataSource getDataSource()
{
try {
Context context = new InitialContext();
DataSource ds = (DataSource) context.lookup("htcgg");
return ds;
} catch (NamingException ex) {
Logger.getLogger(PoolJndiTest.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
public static void main(String[] args){
DataSource ds= PoolJndiTest.getDataSource();
}
错误提示如下:
javax.naming.NamingException: Lookup failed for 'htcgg' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [Root exception is javax.naming.NameNotFoundException: htcgg not found]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at com.sdl.poolTest.PoolJndiTest.getDataSource(PoolJndiTest.java:31)
at com.sdl.poolTest.PoolJndiTest.main(PoolJndiTest.java:40)
Caused by: javax.naming.NameNotFoundException: htcgg not found
at com.sun.enterprise.naming.impl.TransientContext.doLookup(TransientContext.java:248)
at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:215)
at com.sun.enterprise.naming.impl.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:77)
at com.sun.enterprise.naming.impl.RemoteSerialContextProviderImpl.lookup(RemoteSerialContextProviderImpl.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:144)
domain.xml配置如下<jdbc-connection-pool driver-classname="" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" res-type="javax.sql.DataSource" description="" name="OvertimePool23">
<property name="User" value="root"></property>
<property name="Password" value="root"></property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="OvertimePool23" jndi-name="htcgg"></jdbc-resource>各位高手请问哪里有问题呀?为什么会查找不到数据源呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货