url установлен с чем-то вроде http:xxx.com в ..test/java/resources/application-local.properties и ..main/java/resources/application-local.properties
В файле под названием applicationcontext-ws.xml использовался ${url}:
<jaxws:client id = "xxx"
serviceClass = "RemoteService"
address = "${url}">
<jaxws:outInterceptors>
<ref bean = "headerInterceptor"/>
</jaxws:outInterceptors>
</jaxws:client>
При запуске теста возникла исключительная ситуация:
Caused by: java.net.URISyntaxException: Illegal character in path at index 1: ${url} at java.net.URI$Parser.fail(URI.java:2848) at java.net.URI$Parser.checkChars(URI.java:3021) at java.net.URI$Parser.parseHierarchical(URI.java:3105) at java.net.URI$Parser.parse(URI.java:3063) at java.net.URI.(URI.java:588) at org.apache.cxf.transport.http.HTTPConduit.setupURI(HTTPConduit.java:664) at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:458)
Однако при его обычном запуске, то есть при отсутствии теста, эта проблема никогда не возникает.
Сначала подозреваю, что это потому, что не загружен ..test/resources/application-local.properties. Я аннотирую поле url с помощью @Value(${url}) в моем тестовом классе, и в режиме отладки я вижу, что значение поля точно соответствует содержимому URL-адреса в ..test/resources/application-local.properties, так что причина не в этом.
Не могли бы вы дать какой-нибудь совет, чтобы помочь мне выяснить, в чем причина и как восстановить url во время выполнения теста? Спасибо.




Я считаю, что '$ {url}' является URL-адресом, а '{' рассматривается как недопустимый символ. Выполните отладку и проверьте, какой URL-адрес передается / создается во время выполнения. Я считаю, что $ {url} неправильно заменяется во время выполнения.
Вы должны предоставить более подробную информацию о вашей тестовой настройке и самом тесте.