2015-01-20 4 views
0

У меня есть требование, когда я должен использовать службу отдыха через HTTPS, и мне нужно получить URL-адрес во время выполнения. Чтобы сделать то же самое я устанавливаю Rest «URL» в качестве исходящего собственности, и я пытаюсь извлечь, что с помощью MELИспользование MEL для извлечения URL-адреса в HTTP OUTBOUND ENDPOINT

#[message.outboundProperties.'url' 

Когда пытаешься сделать, как я уже сказал выше, я получаю ошибку компиляции времени, которая является упомянутый ниже

org.springframework.beans.MethodInvocationException: Property 'protocol' threw exception; nested exception is java.lang.IllegalArgumentException: Address '#[message.outboundProperties.'url']' for protocol 'http' should start with http:// 

Я делаю что-то неправильно? или есть лучший способ достичь этого требования, кроме этого?

\t <https:outbound-endpoint exchange-pattern="request-response" 
 
\t \t \t \t \t \t \t method="GET" doc:name="HTTPs with Auth header" address="#[message.outboundProperties.'url']" connector-ref="HTTP_HTTPS"/> 
 

 
    <https:connector name="HTTP_HTTPS" cookieSpec="netscape" validateConnections="true" sendBufferSize="0" receiveBufferSize="0" receiveBacklog="0" clientSoTimeout="10000" serverSoTimeout="10000" socketSoLinger="0" doc:name="HTTP-HTTPS"> 
 
     <https:tls-key-store path="#[message.outboundProperties.'Storepath']" keyPassword="#[message.outboundProperties.'storepassword']" storePassword="#[message.outboundProperties.'storepassword']"/> 
 
     <https:tls-server path="#[message.outboundProperties.'Storepath']" storePassword="#[message.outboundProperties.'storepassword']"/> 
 
    </https:connector>

ответ

1

Http компонентов требуется статический 'HTTP: //' как начало URL, следовательно, ниже работает

<http:outbound-endpoint exchange-pattern="request-response" method="GET" address="http://#[message.outboundProperties.'url'] " doc:name="HTTP"/>