spring-boot - Spring Boot:无法查找数据源
问题描述
我在 Spring Boot 上运行需要查找数据源的应用程序框架 (jbpm)。我面临以下错误:
java.lang.RuntimeException: Unable to look up data source: java:jboss/datasources/ExampleDS - Need to specify class name in environment or system property, or in an application resource file: java.naming.factory.initial
at org.jbpm.process.workitem.executesql.ExecuteSqlWorkItemHandler.<init>(ExecuteSqlWorkItemHandler.java:83) ~[execute-sql-workitem-7.52.0.Final.jar:7.52.0.Final]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
我在 application.properties 中有以下属性:
spring.datasource.username=sa
spring.datasource.password=sa
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
#hibernate configuration
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
我还在我的配置类中添加了以下内容:
@Bean
public DataSource jndiDataSource() throws IllegalArgumentException, NamingException {
JndiObjectFactoryBean bean = new JndiObjectFactoryBean();
bean.setJndiName("java:jboss/datasources/ExampleDS");
bean.setProxyInterface(DataSource.class);
bean.setLookupOnStartup(false);
bean.afterPropertiesSet();
return (DataSource) bean.getObject();
}
我检查了 jbpm 处理程序的代码: https ://github.com/kiegroup/jbpm-work-items/blob/main/execute-sql-workitem/src/main/java/org/jbpm/process/workitem/ executesql/ExecuteSqlWorkItemHandler.java#L79 我看到这是进行查找的代码:
this.ds = InitialContext.doLookup(dataSourceName);
我的代码/配置中缺少什么?谢谢
编辑:这是 pom.xml 的核心部分:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.10.RELEASE</version>
</parent>
<properties>
<version.org.kie>7.52.0.Final</version.org.kie>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<narayana.version>5.9.0.Final</narayana.version>
<fabric8.version>3.5.40</fabric8.version>
</properties>
<dependencies>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-server-spring-boot-starter</artifactId>
<version>${version.org.kie}</version>
</dependency>
<dependency>
<groupId>org.jbpm.contrib</groupId>
<artifactId>execute-sql-workitem</artifactId>
<version>${version.org.kie}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
解决方案
推荐阅读
- scala - spark-submit 传递 --files
- python - 在Python中的值范围内根据多个条件匹配两个数据框
- javascript - 如何在javascript中从数组中读取数据
- azure-language-understanding - 当在使用 Node.js 的 KB QnA maker 中找不到匹配项时,如何配置 LUIS 响应?
- r - 渲染存储在 R 闪亮应用程序列表中的多个图
- python - 查找 url 的正则表达式直到某个深度/目录
- kotlin - 如何在运行时获取函数文字的注解
- python - Python 游戏逻辑 - 类似口袋妖怪的类型差异
- javascript - jQuery Magnify:为“data-magnify-src”添加相同的图像
- android - Android:Paging3:重复项目