Не удается разрешить $ {url} в applicationcontext-ws.xml во время выполнения теста

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 во время выполнения теста? Спасибо.

Вы должны предоставить более подробную информацию о вашей тестовой настройке и самом тесте.

mrkernelpanic 17.09.2018 09:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
106
1

Ответы 1

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

Другие вопросы по теме