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

连接到mongodb时的Spring本机问题

施权
2023-03-14

我的spring应用程序使用mongodb进行持久化。应用程序使用用户名/密码连接到mongodb。

为了找到Spring Native的好处,我在我的Ubuntu18LTS上创建了一个docker映像。当我使用docker compose运行应用程序映像和mongodb映像时,一切看起来都很好。当我调用插入mongodb的rest api时,应用程序会抛出一个错误

com.oracle.svm.core.jdk.UnsupportedFeatureError: Trying to verify a provider that was not registered at build time: SunJCE version 11. 
All providers must be registered and verified in the Native Image builder. 
Only the SUN provider is registered and verified by default. 
All other built-in providers are processed when all security services are enabled 
using the --enable-all-security-services option. 
Third party providers must be configured in the Native Image builder VM. 
at com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:87)
native-demo |   at javax.crypto.JceSecurity.getVerificationResult(JceSecurity.java:384)
native-demo |   at javax.crypto.JceSecurity.canUseProvider(JceSecurity.java:231)
native-demo |   at javax.crypto.Mac.getInstance(Mac.java:186)
native-demo |   at com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient.hi(ScramShaAuthenticator.java:299)

操作系统:Ubuntu18LTS

Spring原生: 0.9.0

Spring靴:2.4.3

JDK:“'openjdk version“11.0.7”2020-04-14 openjdk运行时环境GraalVM CE 20.1.0(构建11.0.7 10-jvmci-20.1-b02)openjdk 64位服务器VM GraalVM CE 20.1.0(构建11.0.7 10-jvmci-20.1-b02,混合模式,共享“””

参考https://www.graalvm.org/reference-manual/native-image/BuildConfiguration/#configuration-file-format,我还创建了一个文件META-INF/native-image.properties,内容如下NativeImageArgs=--enable-all-security-service

即使重建了形象,问题依然存在。

如何解决此问题?任何关于可能解决方案的建议。

共有1个答案

堵宪
2023-03-14

你能在spring boot maven插件上添加一个构建参数吗?

                <configuration>
                    <image>
                        <builder>paketobuildpacks/builder:tiny</builder>
                        <env>
                            <BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
                            <BP_NATIVE_IMAGE_BUILD_ARGUMENTS>
                                - H:IncludeResourceBundles=sun.security.util.Resources
                            </BP_NATIVE_IMAGE_BUILD_ARGUMENTS>
                        </env>
                    </image>
                </configuration>
 类似资料:
  • 我想通过aplication.properties文件将Spring Boot REST Api项目连接到MongoDb。为什么?因为这对我来说似乎更容易。 我知道如何使用MySQL数据库进行连接。我已经下载了MongoDb Compass GUI。 应用属性文件 我使用uri是因为我发现如果MongoDb版本是 用户收藏:链接 pom文件: 用户存储库文件: 主要申请文件: 我得到以下错误恍惚:

  • 下面是/etc/kafka/connect-MongoDB-source.properties中的MongoDB配置 但是低于误差 以独立模式运行连接器。 我在debezium-debezium-连接器-mongob-1.0.0/debezium-connector-mongodb-1.0.0.Final.jar 类路径的设置如下 使用插件路径,我看到它能够注册和加载所有必需的插件。 但最后还是同

  • 我正在从事一个Java/vertx项目,其后端是MongoDB(从一段时间以来,我一直使用Elixir/Erlang,我对vertx很陌生,但我认为它最适合)。基本上,我有一个由一些HttpServerVerticles处理的http API,它们需要将数据存储到mongo db(或从中检索数据),并向API调用方发送适当的回复。我正在寻找正确的模式来实现查询和处理回复。 从官方指南和一些教程中,

  • 我已经使用Spring集成了MongoDB,我的数据服务有一个自动连接的mongo存储库,一切都正常。启动期间db关闭时除外。 当mongo关闭而服务启动时,初始化期间会引发异常,在这种情况下,整个服务无法启动。这显然不是我想要的。 我希望发生的是捕获异常并启动服务,并优雅地处理数据库可用性问题(例如显示一个页面,说明我们遇到了临时问题,使用缓存或其他任何东西) 我的存储库类: 我的服务等级: 和

  • 问题内容: 所以我想连接到我在主机上运行的mongodb(DO Drop,Ubuntu 16.04)。它在localhost 的默认端口上运行。 然后,我使用mup将我的Meteor应用程序部署在我的DO Drop上,该DO Drop使用docker在容器内运行Meteor应用程序。到目前为止,一切都很好。使用标准连接URL将应用程序连接到mongodb。现在我有以下问题: 显然不能在docker

  • 问题内容: 我在使用Spring使用凭据访问MongoDB时遇到问题。虽然没有凭据,但它就像一个咒语,但是使用它们却无法说 一定是由于新的auth默认设置,您可以在http://docs.mongodb.org/manual/core/authentication/中进行阅读 在3.0版中进行了更改:SCRAM-SHA-1是从3.0系列开始的MongoDB版本的默认机制。 问题: 有人找到一种使用