当前位置: 首页 > 知识库问答 >
问题:

WebLogic无法解析jndi数据源

袁鸿畴
2023-03-14

我有通过jndi名称从WebLogic获取数据源的应用程序。

JndiObjectFactoryBean jndiFactory = new JndiObjectFactoryBean();
jndiFactory.setJndiName(currentDSSettings.getJndi());
jndiFactory.setResourceRef(true);
jndiFactory.setProxyInterface(DataSource.class);
jndiFactory.setLookupOnStartup(false);
jndiFactory.afterPropertiesSet();
datasource = (DataSource) jndiFactory.getObject();

我在应用程序中配置了jndi数据源名称。yml:

spring:
  profiles.active: development

---
spring:
  profiles: production
datasources:
   -  dbName : myDataSource
      driverClass:
      url:
      jndi: RCDB-SMS-JNDI
      db:
      server:
      user:
      password:

我在WebLogic服务器上配置了它,指定了特定的目标。我测试了这个数据源,WebLogic说测试成功了。但是当我尝试部署应用程序时,我收到以下错误:

javax.naming.NameNotFoundException: Unable to resolve 'RCDB-SMS-JNDI'. Resolved ''; remaining name 'RCDB-SMS-JNDI'

我需要确定WebLogic的数据源配置中存在问题,或者在java代码中获取数据源时存在问题。我是否能够在不部署应用程序的情况下测试获取数据源?

共有1个答案

林弘文
2023-03-14

似乎应该在JndiName前面加一个路径。根据路径定义,尝试将代码替换为以下代码:

JndiObjectFactoryBean jndiFactory = new JndiObjectFactoryBean();
jndiFactory.setJndiName("java:comp/env/" + env.getProperty("sta.datasource.name", "jdbc/mySpace"));
jndiFactory.setResourceRef(true);
jndiFactory.setProxyInterface(DataSource.class);
jndiFactory.setLookupOnStartup(false);
try {
    jndiFactory.afterPropertiesSet();
} catch (IllegalArgumentException | NamingException e) {
    throw new SQLException("Datasource not found", e);
}
datasource = (DataSource) jndiFactory.getObject();  

或应用程序。可以配置yml

server:
  contextPath: jdbc/mySpace
 类似资料:
  • 我正在研究EJB中消息驱动Bean的示例。我创建了部署在weblogic服务器中的EJB项目和使用JNDI名称向MDB发送消息的客户端项目。我还在weblogic控制台中创建了JMS队列和队列连接工厂。 但问题是客户端无法识别队列的JNDI名称。 Oueelistenermdb。java on EJB项目 } QueueSenderDemo。java on客户端项目 我在运行这样的客户端程序时出错

  • 我正在WebLogic12c上部署一个Spring Boot应用程序。 没有Jndi数据源,一切正常。我试图在WebLogic上配置一个名为“jdbc/myDataSource”的数据源,并在我的应用程序上设置了如下属性: 但是,当我部署我的web应用程序时,我收到以下错误: WebLogic.Application.ModuleException:javax.naming.nameNotFoun

  • 问题内容: 我们正在使用weblogic版本12C。重现此问题的步骤:- 创建数据源。 将应用程序部署到weblogic。 应用程序工作正常。 用新的耳朵更新部署的耳朵。 应用程序无法连接数据源。 数据源在JNDI树中不可用。 我们需要每次创建一个新的数据源或再次保存数据源设置。 有人可以检查一下,让我知道是否知道一些解决方案吗? 问题答案: 我有同样的问题。添加destroyMethod =“”

  • 我正在使用WebLogic12c,并将数据源配置如下: 注意,它们都部署在目标“AdminServer”上。此外,“name”字段和“JNDI name”字段是相同的。例如,假设一个数据源的名称是“myds”。 现在,当我尝试通过Spring Data JPA获取数据源时,如下所示: 我还看到了这个错误: 调试O.s.JNDI.jndiobjectFactoryBean-未找到转换的JNDI名称[

  • 在weblogic上部署webapp时,我遇到了以下错误: 有人能告诉我调试这个的方法吗。

  • 我正在尝试获取一个条目,该条目是我在Weblogic 12C中的。ear部署的应用程序中的war的中删除的: 在我的代码中: 知道如何定义条目以便使用检索它们吗?