Java JUnit servlet使用数据源的jndi查找进行测试

Java JUnit servlet使用数据源的jndi查找进行测试,java,unit-testing,servlets,jdbc,jndi,Java,Unit Testing,Servlets,Jdbc,Jndi,如何对使用jndi查找数据源JDBC的servlet进行单元测试?通过手动创建数据源,在@Before或@BeforeClass方法中设置jndi上下文 答案只是指导性的,但我不能提供任何具体的内容,因为您没有提供任何具体的内容通过手动创建数据源,在@Before或@BeforeClass方法中设置JNDI上下文 答案只是指导性的,但我不能提供任何具体的内容,因为您没有提供任何具体的内容。如果问题是您需要JNDI,那么有一个简单的独立实现,可以在应用程序和单元测试场景中使用 如果问题是您需要JN

如何对使用jndi查找数据源JDBC的servlet进行单元测试?

通过手动创建数据源,在@Before或@BeforeClass方法中设置jndi上下文


答案只是指导性的,但我不能提供任何具体的内容,因为您没有提供任何具体的内容

通过手动创建数据源,在@Before或@BeforeClass方法中设置JNDI上下文


答案只是指导性的,但我不能提供任何具体的内容,因为您没有提供任何具体的内容。如果问题是您需要JNDI,那么有一个简单的独立实现,可以在应用程序和单元测试场景中使用

如果问题是您需要JNDI,那么有一个简单的独立实现,可以在应用程序和单元测试场景中使用

我在before类方法中运行以下代码

    try {

        // Create initial context
        System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
            "org.apache.naming.java.javaURLContextFactory");
        System.setProperty(Context.URL_PKG_PREFIXES, 
            "org.apache.naming");            
        InitialContext ic = new InitialContext();

        ic.createSubcontext("java:");
        ic.createSubcontext("java:/comp");
        ic.createSubcontext("java:/comp/env");
        ic.createSubcontext("java:/comp/env/jdbc");

        // Construct DataSource
        OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource();
        ds.setURL(""); // <--insert url to database here
        ds.setUser("username"); //<-- self explanatory
        ds.setPassword("password"); //<-- self explanatory

        ic.bind("java:/comp/env/jdbc/examplename", ds); //<--insert name of binding here
    } catch (NamingException ex) {
        ex.printStackTrace();
    } catch (SQLException ex){
        ex.printStackTrace();
    }
我使用Tomcat作为服务器,因此我还必须引用位于Tomcat\bin目录中的以下jar文件:

tomcat-juli.jar bootstrap.jar commons-daemon.jar
我希望这能帮助您

我在before类方法中运行以下代码

    try {

        // Create initial context
        System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
            "org.apache.naming.java.javaURLContextFactory");
        System.setProperty(Context.URL_PKG_PREFIXES, 
            "org.apache.naming");            
        InitialContext ic = new InitialContext();

        ic.createSubcontext("java:");
        ic.createSubcontext("java:/comp");
        ic.createSubcontext("java:/comp/env");
        ic.createSubcontext("java:/comp/env/jdbc");

        // Construct DataSource
        OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource();
        ds.setURL(""); // <--insert url to database here
        ds.setUser("username"); //<-- self explanatory
        ds.setPassword("password"); //<-- self explanatory

        ic.bind("java:/comp/env/jdbc/examplename", ds); //<--insert name of binding here
    } catch (NamingException ex) {
        ex.printStackTrace();
    } catch (SQLException ex){
        ex.printStackTrace();
    }
我使用Tomcat作为服务器,因此我还必须引用位于Tomcat\bin目录中的以下jar文件:

tomcat-juli.jar bootstrap.jar commons-daemon.jar
我希望这能帮助你

你救了我,这就是我需要对soap服务器的方法进行单元测试的地方。在我的例子中使用postgres给出如下内容:`import org.postgresql.ds.pgpoolingdasource;//。。。PGPOOLAGDATASOURCE ds=新的PGPOOLAGDATASOURCE;ds.setDataSourceName。。。;设置服务器名称。。。;ds.setDatabaseName。。。;设置用户。。。;设置密码。。。;ds.setMaxConnections10;ic.bind…,ds`你救了我,这就是我需要对soap服务器的方法进行单元测试的地方。在我的例子中使用postgres给出如下内容:`import org.postgresql.ds.pgpoolingdasource;//。。。PGPOOLAGDATASOURCE ds=新的PGPOOLAGDATASOURCE;ds.setDataSourceName。。。;设置服务器名称。。。;ds.setDatabaseName。。。;设置用户。。。;设置密码。。。;ds.setMaxConnections10;ic.bind…,ds`