2014-11-25 51 views
0

在我的春節,啓動Web服務應用程序,我想加載一個名爲APPNAME在application.properties定義的值屬性。春季啓動WS應用程序無法加載外部屬性

@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}」

難道你們知道我做錯了嗎?

感謝任何幫助。

+2

很難說。如果我不得不猜測,我可能會說你的屬性文件不在類路徑中(IDE可能會更新),或者你並不是真的用該主要方法啓動你的應用程序。 – 2014-11-25 08:04:41

+0

嗨戴夫,這是一個非常有效的點,你讓我覺得在正確的方向。儘管Eclipse IDE已將src/main/resources添加到類路徑,但排除了* .properties並導致此問題。現在它都是固定的。非常感謝您的意見。 – user2926391 2014-11-25 10:32:07

回答

1

正如Dave在上面的評論中提到的那樣,屬性文件沒有加載到類路徑中。 屬性文件位於/ src/main/resources文件夾中,該文件夾已添加到源中,位於Eclipse IDE中的構建路徑下,但應用了排除規則,該規則阻止將屬性文件加載到類路徑中。通過刪除排除,我能夠正確加載屬性。

相關問題