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

在karaf 4上通过pax-jdbc配置文件创建PostgreSQL DataSource

闽经纬
2023-03-14

在我的karaf 4.0.8上,我已经安装了特性pax-jdbc-postgresql

org.osgi.service.jdbc.DataSourceFactory]
osgi.jdbc.driver.class  org.postgresql.Driver
osgi.jdbc.driver.name   PostgreSQL JDBC Driver
osgi.jdbc.driver.version    PostgreSQL 9.4 JDBC4.1 (build 1203)
service.bundleid    204
service.scope   singleton
Using Bundles   com.eclipsesource.jaxrs.publisher (184)

我已经创建了文件etc/org。ops4j。数据源psql沙盒。cfg

osgi.jdbc.driver.class=org.postgresql.Driver
osgi.jdbc.driver.name=PostgreSQL
url=jdbc:postgresql://localhost:5432/sandbox
dataSourceName=psql-sandbox
user=sandbox
password=sandbox

之后,我在karaf中看到了确认。记录文件是否已被处理:

2017-02-10 14:54:17,468|INFO|41-88b277ae0921)|DataSource注册|154-org.ops4j.pax.jdbc.config-0.9.0|检测到DataSource psql-沙盒的配置。

然而,我在控制台的服务列表中没有看到新的数据源。出什么事了?我在日志中没有看到例外。。。。


共有1个答案

麻鸿熙
2023-03-14

日志消息告诉您,配置已经处理,现在正在搜索合适的DataSourceFactory OSGi服务。

你的问题是,它找不到这样的服务。所以要调试它,您应该列出所有DataSourceFactory服务并检查它们的属性。

service:list DataSourceFactory

在我的例子中,它表明:

[org.osgi.service.jdbc.DataSourceFactory]
-----------------------------------------
osgi.jdbc.driver.class = org.postgresql.Driver
osgi.jdbc.driver.name = PostgreSQL JDBC Driver
...

正如您所见,它与您在日志中看到的过滤器不匹配。一般来说,您应该只提供osgi中的任意一个。jdbc。驾驶员类或osgi。jdbc。驾驶员不要两者都提。如果你移除osgi。jdbc。驾驶员名称行配置将起作用。

没有错误信息,因为系统无法知道错误是否是暂时的。基本上,只要你安装了一个匹配的OSGi服务,数据源就会被创建。

 类似资料:
  • 所有上传的数据必须包含名称列。 上传数据指将已整理好的表格,直接上传到地图者中。具体参考格式可以在“数据类型”下方,下载EXCEL样例文件。 注意:点线面的模版不完全相同,请选择好数据类型后再下载。 点数据分为两种情况 1.没有坐标,只有地址信息 可以通过系统进行自动定位获取坐标,此种格式要求表格必须包含“地址”列,具体参考“样例一”。系统会使用地址列进行定位。地址列越详细定位越准确。 注意:请在

  • 我正在我的ubuntu上运行Hive2,并尝试通过hive接口和Beeline\JDBC创建表。我通过配置单元接口创建表没有问题,但是当通过jdbc访问时,我得到一个权限被拒绝的错误。 从异常中,我看到它试图在一个不存在的目录中创建表(/user/hive/warehouse/...) 那么它为什么要在/user/hive/warehouse下创建metastore_db呢?

  • 我将连接的Docker mysql实例与Docker容器一起使用,其中包含一个配置了Pax JDBC数据源的Karaf 4实例。 我的问题是我的jdbc url依赖于docker设置的一些环境变量(因为mysql容器IP并不总是相同的)。IP地址变量是。 我试图用并使用配置文件(etc/org.ops4j.datasource.mydb.cfg)设置我的数据源,该文件将包含: 但看看服务:列表在k

  • 我使用Hortonworks Hadoop HDP-2.3.2.0-2950 Hive over Tez引擎 下面2个查询来自Java代码。 ——运行良好 ——失败并出现错误 我的代码:

  • 问题内容: 我需要对CSV文件(以逗号分隔的文本文件)应用SQL查询。我的SQL是通过其他工具预定义的,无法更改。它可能在FROM部分中包含嵌入式选择和表别名。 对于我的任务,我发现了两个提供JDBC驱动程序 的开源 库(这是项目要求): CsvJdbc XlSQL JBoss Teiid 创建一个Apache Derby DB,将所有CSV加载为表格并执行查询。 这些是我遇到的问题: 它不接受S

  • 问题内容: 我想为我的PHP项目创建一个配置文件,但是我不确定执行此操作的最佳方法是什么。 到目前为止,我有3个想法。 1用途变量 2用建筑 3用途数据库 我将在类中使用config,因此我不确定哪种方法是最佳方法,或者是否有更好的方法。 问题答案: 一种简单而优雅的方法是创建一个仅返回数组的文件(或您所谓的文件): 然后: