获取javax.naming.NameNotFoundException:通过weblogic数据源连接到数据库时无法解析

时间:2015-03-03 12:39:12

标签: jdbc weblogic-10.x

我正在尝试从客户端程序获取数据源对象,而在weblogic控制台中创建的数据源的目标机器是其他机器。

请让我知道我的方法是否正确

PFB代码段......

    Connection conn1=null;

    javax.sql.DataSource ds=null;

    Hashtable ht=new Hashtable();

    Context initialContext=null;

    try {
        ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
        ht.put(Context.PROVIDER_URL, "t3://hostname:port/");
        ht.put(Context.SECURITY_PRINCIPAL, "xxxxx");
        ht.put(Context.SECURITY_CREDENTIALS, "xxxxx");

         initialContext=new InitialContext(ht);
        System.out.println("got initial context");

        ds=(javax.sql.DataSource)initialContext.lookup("SampleConnection1");
        try {
        conn1=ds.getConnection();

        Statement stmt = conn1.createStatement();
        ResultSet rset = stmt
        .executeQuery("select  1 from dual");
        if (rset.next())
        System.out.println(rset.getString(1));

        rset.close();
        stmt.close();
        conn1.close();


            conn1= ds.getConnection();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

低于错误......

javax.naming.NameNotFoundException:无法解析' SampleConnection1'。已解决'' [根异常是javax.naming.NameNotFoundException:无法解析' SampleConnection1'。已解决''];剩余名称' SampleConnection1'     在weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)     在weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)     在weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)     在weblogic.jndi.internal.ServerNamingNode_1034_WLStub.lookup(未知来源)     在weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:423)     在weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:411)     在javax.naming.InitialContext.lookup(未知来源)     在ConnectToJNDI.getJndiConnection(ConnectToJNDI.java:45)     在ConnectToJNDI.main(ConnectToJNDI.java:28) 引起:javax.naming.NameNotFoundException:无法解析' SampleConnection1'。已解决''     at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)     在weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)     在weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)     在weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)     在weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(未知来源)     在weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)     在weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)     在weblogic.rmi.internal.BasicServerRef $ 1.run(BasicServerRef.java:522)     在weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)     在weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)     在weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)     在weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)     在weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)     在weblogic.work.ExecuteThread.run(ExecuteThread.java:176)

请建议如何解决这个问题....

1 个答案:

答案 0 :(得分:1)

假设您的代码完全按照控制台中的配置匹配数据源的名称,我将确保您为数据源分配了目标服务器。