我正在尝试从客户端程序获取数据源对象,而在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)
请建议如何解决这个问题....
答案 0 :(得分:1)
假设您的代码完全按照控制台中的配置匹配数据源的名称,我将确保您为数据源分配了目标服务器。