应用程序.属性
spring.datasource.jndi-name=java:/comp/env/jdbc/myDemoDs
spring.jndi.properties.java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
spring.jndi.properties.java.naming.provider.url=t3://localhost:7001
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
我已使用上述 JNDI 配置,但出现错误。 原因:javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者作为小程序参数,或者在应用程序资源文件中:java.naming.factory.initial
我已删除 application.properties 中的 JNDI 配置,并在主应用程序类中添加以下代码。
@SpringBootApplication(exclude = { JmxAutoConfiguration.class})
和
@Bean
public DataSource dataSource() {
try {
System.setProperty("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
InitialContext context = new InitialContext();
// Use the full JNDI name including the application and module names
return (DataSource) context.lookup("jdbc/ekpDataSource");
} catch (NamingException e) {
throw new RuntimeException("Failed to lookup DataSource", e);
}
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
不要忘记在项目中添加外部(weblogic.jar)jar。 您可以在此路径中找到 weblogic.jar 文件 {WebLogic_Home}/wlserver/server/lib/weblogic.jar