1
に失敗した私は自分のアプリケーションをテストしようとするとトラブルに実行しています:以下のようにテストの実行が失敗したためコンフィグ負荷
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MainConfiguration.class)
public class ProductionDataRestClientTest {
@Test
public void testGetProductionDataAsync() {
}
}
MainConfigurationクラスは次のとおりです。
@Data
@Configuration
@Slf4j
@PropertySource(value = {
"classpath:/conf/application.properties", "classpath:/conf/application.build.properties",
"file:${configPath}/application.properties" }, ignoreResourceNotFound = true)
public class MainConfiguration {
@Value("${app.configName}")
private String configName;
@Value("${project.name}")
private String appName;
@Value("${project.version}")
private String appVersion;
@Value("${app.historySize}")
private int historySize;
@Value("${app.processOnlyVisibleEnvironments}")
private Boolean processOnlyVisibleEnvironments;
@PostConstruct
private void logConfig() {
appName = WordUtils.capitalize(appName);
log.info("constructed config: " + configName);
log.info(this.toString());
}
}
とアプリケーション.propertiesファイルはここにあります:
app.configName=Internal Classpath
app.historySize=25
app.processOnlyVisibleEnvironments=true
client.timeout.connect=30000
client.timeout.read=30000
threading.pool.size.environmentProcessing=5
threading.pool.size.webServiceRequesting=10
私の問題は、その春はtを解決しないようです通常の処刑のように、彼値識別子、以下のスタックトレースがスローされるように:
Caused by: java.lang.NumberFormatException: For input string: "${app.historySize}"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.valueOf(Integer.java:766)
at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:194)
at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:113)
at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:464)
at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:437)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:195)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:125)
at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:61)
... 47 more
私は、多くの異なるものを試してみました、任意の手掛かりを持っていない、何も働きました。事前に
感謝:)
他の指定propertieファイル(例えば "ファイル:$ {}はconfigPath /application.properties" のいずれかがない)万が一、この設定を上書き?それが提供された情報からなぜそれが失敗しているのかを知ることは不可能です。 NumberUtils.java:194にブレークポイントを入れて、数値に変換できない特定の値を調べてから、その値をプロジェクト内で検索してみてください。 – kryger
ちょっとkryger、 "$ {app.historySize}"を解析しようとしている値です。 configPathは指定されていないので、他のファイルもロードされません。残念ながら私はもっと情報を与えることはできませんが、それは非常に扱いにくく、なぜ@Valueアノテーションの文字列が解釈されないのか分かりません。 –
他のすべてのプロパティを設定から削除してみます。私は@krygerに同意します。他のプロパティがあなたの最初のプロパティをオーバーライドしています。また、pathにはclasspath:conf/application.propertiesを指定する必要があります。 –