2013-04-05 2 views
0

У меня настроен входящий исходящий шлюз, основанный на веб-сервисе. Я хотел бы зарегистрировать входящие сообщения SOAP (конверт и все внутри него). Какой был бы лучший способ сделать это?Как зарегистрировать полученное сообщение SOAP в Spring Integration

Я попытался использовать проводной переходник с адаптером канала регистрации, но не знаю хорошего выражения для его получения, чтобы получить фактический SOAP XML. Если входящий шлюз настроен не на извлечение полезной нагрузки, я увижу SaajSoapMessage как полезную нагрузку и DOMSource в противном случае. Есть ли выражение, чтобы получить SaajSoapMessage как строку XML?

Вот моя конфигурация, с которой я получаю, чтобы увидеть ToString() из SaajSoapMessage:

<int:channel id="request"> 
    <int:interceptors> 
     <int:wire-tap channel="logger"/> 
    </int:interceptors> 
</int:channel> 
<int:logging-channel-adapter id="logger" expression="payload" level="DEBUG"/> 

<int:channel id="reply"/> 
<int-ws:inbound-gateway id="ws-inbound-gateway" request-channel="request" reply-channel="reply" 
         extract-payload="false"/> 

ответ

0

Spring Web Services предлагает перехватчики вы могли бы использовать.

Если вы используете маршаллера и unmarshaller, у обоих есть слушатели, которые могут что-то сделать до и после того, как они выполняют маршаллинг/unmarshalling.

Если вам нужно захватить информацию, которая была добавлена ​​в сообщение до того, как после ws-inbound-gateway вы можете использовать активатор службы.

Если вы хотите, чтобы вы регистрировали любое исключение, рассмотрите шлюз сегмента и активатор службы в его потоке сообщений.

Смежные вопросы