import java.io.File;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class Test2
{
private final static File currentDir = new File( new File( "" )
.getAbsolutePath() );
private static void createJNDIDataSource() throws NamingException
{
Properties properties = new Properties();
properties.setProperty( "java.naming.factory.initial",
"org.mortbay.naming.InitialContextFactory" );
Context initialContext = new InitialContext( properties );
Context springCtx = initialContext.createSubcontext( "jdbc" );
File f = new File( currentDir.getParentFile(),
"/build/dev/datasource_bean.xml" );
ApplicationContext applicationContext = new FileSystemXmlApplicationContext(
f.getAbsolutePath() );
springCtx
.bind( "unicfgext", applicationContext.getBean( "dataSource" ) );
}
public static void main( String[] args ) throws NamingException
{
//创建数据源
createJNDIDataSource();
//查找数据源
Properties properties = new Properties();
properties.setProperty( "java.naming.factory.initial",
"org.mortbay.naming.InitialContextFactory" );
Context initialContext = new InitialContext( properties );
//通过JNDI查找数据源
BasicDataSource dataSource = (BasicDataSource)initialContext.lookup( "jdbc/unicfgext" );
//打印数据源对象
System.out.println(dataSource);
}
}