我有两个 Spring Boot 应用程序。第一个是 API 库,它作为依赖 jar 被拉入第二个(Web 应用程序)。
第一个是 API 库,其中包含在 IBM 解决方案中创建“案例”的函数。它是一个独立的类型 jar,具有一个服务类,该服务类公开 getCaseXMLForDocId(String docId) 或 createCaseForAgreementNumber(StringgreementNumber) 等方法
第一个名为 CaseInitationAPI 的库有一个 application.properties 文件,其中包含多个属性。例如:
caseinvocation.query.fetchNonProcessedCaseXml=SELECT Id, CaptureSource, AgreementNumber, CaptureSourceID FROM CaseInvocation WHERE ProcessIndicator IN (0, 2)
Run Code Online (Sandbox Code Playgroud)
服务类有一个进行查询的方法,从使用 application.properties 文件中的属性填充的成员变量中获取查询字符串:
@Value("${caseinvocation.query.fetchNonProcessedCaseXml}")
private String selectNonProcessedQueryString;
Run Code Online (Sandbox Code Playgroud)
第二个 SpringBoot 应用程序是一个具有 REST 控制器的 Web 应用程序。这些控制器公开调用 CaseInitationAPI 库(特别是 CaseInitationService 类)的端点。
我遇到的问题是,当 SpringBoot WEBAPPLICATION 启动时,上下文配置会崩溃,并出现以下错误:
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'caseinvocation.query.fetchNonProcessedCaseXml' in string value "${caseinvocation.query.fetchNonProcessedCaseXml}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174)
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126)
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:219)
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:193)
at …Run Code Online (Sandbox Code Playgroud)