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

运行本机映像时,Micronaut@value不获取环境变量

阎知
2023-03-14

我已经用graalvm和micronaut构建了一个本机映像,但是我的本机映像应用程序无法使用@value注释获得环境变量。当我尝试以jar的形式运行应用程序时,它工作得很好。

@Singleton
public class WebComponentService {
    @Value("${config.adyen.merchantaccount}")
    private String merchantAccount;
}

这就是我得到的错误

消息:设置字段值时出错:未找到类型:Example.Micronaut.GetOriginKeys.WebComponentService得字段“Merchant Account”所采用得路径:新建GetOriginKeysController([WebComponentService WebComponentService])IO.Micronaut.Context.Exceptions.DependencyInjectionException:无法为类:Example.Micronaut.GetOriginKeys.WebComponentService得字段[merchantAccount]注入值

然而,当我尝试这样获取环境变量时,它工作得很好。

Map<String, String> environmentVars  = System.getenv();
String merchantAccount = environmentVars.get("CONFIG_ADYEN_MERCHANTACCOUNT");

这就是我运行本机应用程序的方式

$ CONFIG_ADYEN_MERCHANTACCOUNT=CommercetoolsGmbHDE775 ./theNativeApp

共有1个答案

苍和裕
2023-03-14

您在此处使用的密钥@value(“${config.adyen.merchantaccount}”)environmentvars.get(“config_adyen_merchantaccount”);不同

确保它们是一样的

 类似资料:
  • 我在这里将Micronaut应用程序作为Graalvm本地映像进行试用。

  • 所以我正确地设置了我的环境变量和它们的值。 如何设置环境变量,以便在命令提示符上输入它们的名称就足以运行它们的值?

  • AST或字节码的解释过程只是在代码过程层面,不足以成为一个完整的运行,因为程序计算是需要数据和存储空间的,光有代码跑不起来,需要运行时环境,至少要有数据,实际情况中还需要一些其他信息。为讨论方便,在解释器中将运行时环境抽象为前述的env对象,通过一些接口来实现存取,这里先只讨论单执行序列,不考虑并发 env在前面的分析中总共就涉及了三个接口,get,set和set_exception(当然还应该有

  • 我正在尝试使用GraalVM为spring cloud gateway构建本机映像。我已经成功构建了一个可以启动的本机映像,但在第一个http请求时,我出现了以下错误: 添加此标志没有帮助 并在反射配置中添加一个条目,不是吗 该项目可以在这里找到:https://github.com/hanouard/demo-native-gateway 你知道是什么导致了这个错误吗?

  • 我有一个基本的Micronaut应用程序,我正在构建一个本机映像。我正在用这些参数构建它: 映像构建得很好,我能够启动它,但是当尝试访问Firestore时,我得到了以下异常: 在这一点上,我对Micronaut和GraalVM都很陌生,所以我肯定我忽略了一些简单的东西,但是我没有找到关于这个特定错误的很多东西,而且我找到的东西也没有解决我的问题。 我正在使用Micronaut2.0.1并使用ma

  • 在运行本机映像包装的micronaut应用程序时遇到问题。 我使用创建了一个简单的演示应用程序,并且根据文档需要添加一些db连接池。我选择了hikari并添加了这样的依赖项。 我使用maven作为构建工具并添加插件来构建native-image 当我用jvm运行应用程序时,一切正常。但是当我尝试运行打包为本机映像的应用程序时,我会遇到这样的错误 更新/解决方案 基于@airy答案,我在native