BaseByBase라는 Java 웹 시작 프로그램이 있으며 다음 스프링 속성 소스 태그 @PropertySource("${appclient}")
을 가진 외부 사내 라이브러리가 있습니다. "${appclient}"
의 값은 BaseByBase의 JNLP 파일에 <property name="appclient" value="url to location"/>
으로 지정됩니다.JNLP 파일의 Spring @PropertySource 위치 문자열 선언
BaseByBase를 jnlp 파일을 통해 실행할 때 모든 것이 정상적으로 작동합니다. 우리는 또한 자신의 BaseByBase를 시작할 수있는 또 다른 jnlp 프로그램 VOC를 가지고 있습니다. VOC 용 JNLP 파일에도 <property name="appclient" value="url to location"/>
이 포함되어있어 문제없이 BaseByBase를 시작할 수 있습니다.
이제 BaseByBase를 실행하는 세 번째 프로그램 GATU를 얻으려고합니다. Gatu에는 BaseByBase를 시작하는 VOC와 동일한 코드가 있으며 JNLP 파일에는 <property name="appclient" value="url to location"/>
이 포함되어 있습니다. 로컬에서 Gatu를 실행하면 모든 것이 예상대로 작동합니다. 하지만 JNLP에서 GATU를 실행하고 BaseByBase를 시작하면 다음 오류가 발생합니다. Failed to initialize application context: java.lang.IllegalArgumentException: Could not resolve placeholder 'appclient' in string value [${appclient}]
.
System.setProperty
을 사용하여 String 값을 설정하려고했지만 해결되지 않았습니다. propertysource가 특성 파일의 위치를 가리 키도록 라이브러리 코드를 변경했으나 수행하지는 않았습니다.
이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? JNLP 파일에는 서명이되어 있으므로, JNLP를 통해 안전하지 않은 시스템 속성을 설정하는 곳을 생각할 수 있습니다.
좋은 하나님 .. 숨을 쉬세요! (또는 다른 말로하면, 더 많은 단락을 사용하십시오. 부끄러워하지 마십시오. 그들은 무료입니다.) –