如何解决从独立的Java应用程序访问Websphere数据源,而无需指定用户名/密码
我正在编写一个独立的应用程序,它将从Websphere Application Server获取数据源,获取数据库连接并执行一些业务逻辑。
import java.sql.Connection;
import java.sql.sqlException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class TestDS {
public static void main(String[] args) {
// Todo Auto-generated method stub
Hashtable<String,String> pdEnv = new Hashtable<String,String>();
pdEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
pdEnv.put(Context.PROVIDER_URL,"iiop://localhost:2809");
System.out.println("Getting connection");
Context initialContext;
try {
System.setProperty("com.ibm.CORBA.Debug","true");
System.setProperty("com.ibm.CORBA.CommTrace","true");
System.setProperty("com.ibm.CORBA.Debug.Output","/usr/app/corba.log");
initialContext = new InitialContext(pdEnv);
System.out.println("Getting initial context");
DataSource datasource = (DataSource)initialContext.lookup("jdbc/sampleDB");
System.out.println("Getting datasource");
Connection connection = null;
System.out.println("Datasoure is "+ datasource);
if (datasource != null) {
//connection = datasource.getConnection("username","password"); // DB credintials
connection = datasource.getConnection();
} else {
System.out.println("Failed to lookup datasource.");
}
} catch (NamingException e) {
// Todo Auto-generated catch block
e.printstacktrace();
} catch (sqlException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
}
这会出现以下错误
java.sql.sqlNonTransientException:[jcc] [t4] [10205] [11234] [4.21.29]不支持空用户ID。 ERRORCODE = -4461,sqlSTATE = 42815 DSRA0010E:sql状态= 42815,错误代码= -4,461
但是如果提供用户名/密码,它就可以正常工作
connection = datasource.getConnection("username","password");
如何在获取数据库连接时如何在不指定用户ID /密码的情况下正常工作
解决方法
大多数JDBC驱动程序供应商都允许在其数据源上设置用户和密码,然后将其用作所有请求的默认连接,而无需用户/密码。如果您在WebSphere Application Server中转到数据源的配置,然后转到“定制属性”,则应该能够为“用户”和“密码”添加属性,如果JDBC供应商支持它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。