Spring boot Spring Boot WS应用程序无法加载外部属性
在我的Spring Boot Web Service应用程序中,我想加载名为appName的属性,该属性的值在application.properties中定义Spring boot Spring Boot WS应用程序无法加载外部属性,spring-boot,spring-ws,Spring Boot,Spring Ws,在我的Spring Boot Web Service应用程序中,我想加载名为appName的属性,该属性的值在application.properties中定义 @Endpoint public class RasEndpoint { private static final String NAMESPACE_URI = "http://www.mycompany.com/schema/ras/ras-request/V1"; @Value("${appName}") private Str
@Endpoint
public class RasEndpoint {
private static final String NAMESPACE_URI = "http://www.mycompany.com/schema/ras/ras-request/V1";
@Value("${appName}")
private String appName;
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getProductRequest")
@ResponsePayload
public GetProductResponse getProduct(@RequestPayload GetProductRequest request) {
System.out.println("appName: " + appName);
GetProductResponse response = generateStubbedOkResponse();
return response;
}
application.properties具有以下条目
appName=ras-otc
我通过主应用程序类启动应用程序,如下所示
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
但是,当我运行应用程序时,我得到以下错误
原因:java.lang.IllegalArgumentException:无法解析
字符串值“${appName}”中的占位符“appName”
你们知道我做错了什么吗
感谢您的帮助。正如Dave在上面的评论中提到的,属性文件没有加载到类路径中。
属性文件位于/src/main/resources文件夹中,该文件夹被添加到源代码中,位于EclipseIDE的构建路径下,但是应用了一个排除规则,该规则阻止将属性文件加载到类路径中。通过删除排除,我能够正确加载属性。很难说。如果我不得不猜测的话,我可能会说,要么你的属性文件不在类路径上(可能是IDE刷新),要么你没有真正用这个主方法启动你的应用程序。嗨,Dave,这是一个非常正确的观点,你让我朝着正确的方向思考。虽然Eclipse IDE在类路径中添加了src/main/resources,但却排除了*.properties,这就是问题的根源。现在都修好了。非常感谢你的意见。