【发布时间】:2020-08-21 21:25:16
【问题描述】:
我能够在 websphere liberty 中设置数据源并通过 REST API 对其进行验证。 如何在java代码中获取数据源连接。我正在尝试这种方式
InitialContext please = new InitialContext();
DataSource ds = (DataSource)please.lookup("jdbc/aces2/testdatasource"); 连接connection = ds.getConnection();
并在下面出现错误。请帮我解决这个问题
com.ibm.websphere.naming.WsnInitialContextFactory (initialization failure)
at java.lang.J9VMInternals.initializationAlreadyFailed(J9VMInternals.java:98)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeConstructorAccessorImpl.java:-2)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:83)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)
at java.lang.reflect.Constructor.newInstance(Constructor.java:437)
at
【问题讨论】:
-
您确定您使用的是
new InitialContext();而不是new InitialContext(properties)?因为此类com.ibm.websphere.naming.WsnInitialContextFactory用于 WebSphere 传统,而不是 LIberty。而不是使用直接查找,我建议在您的课程中使用注释,例如:@Resource(jndiName="/jdbc/aces2/estdatasource") Datasource ds;