2013-05-13 4 views
0

У меня есть промежуточное программное обеспечение, которое может принимать запрос SOAP и также может обрабатывать запрос SOAP.Идентифицировать SOAP-сообщение как запрос или ответ

Я написал пользовательские перехватчики для перехвата входящего и исходящего запроса для их регистрации в базе данных.

Проблема заключается в том, что при выполнении запроса SOAP входящий запрос перехватывается перехватчиком InBound, и когда мой модуль делает запрос SOAP, он перехватывается Исходящим перехватчиком, который является правильным.

Но я хотел бы определить входящее сообщение SOAP в качестве погоды, это запрос SOAP или ответ SOAP, чтобы я мог правильно зарегистрировать SOAP-запрос и ответ.

Есть ли способ идентифицировать сообщение SOAP в качестве запроса или ответа?

ответ

1

Вы также можете использовать CXF MessageUtils класс, чтобы сделать это. Для например:

boolean requestor = MessageUtils.isRequestor(message); 
boolean outbound = MessageUtils.isOutbound(message); 
if (requestor) { 
    if (!outbound) { 
     //This is your RESPONSE message 
    } 
} else { 
    if (!outbound) { 
     //This is your REQUEST message 
    } 
} 
+0

awesome Я искал такой вид решения, но не получил никаких данных, поэтому я полагался на метод Http, упомянутый Moles. – NullPointerException

1

Вы всегда можете получить заголовки и искать заголовок TCP, если есть запрос метод POST сказать для SOAP вызова

+0

Я не уверен, но это будет всегда POST или это может быть GET, а – NullPointerException

+0

Вы, кажется, быть экспертом в WS, и я п новичку к веб-услуг Вы можете посмотреть на ** [this] (http://stackoverflow.com/questions/16526506/catching-the-soap-fault-error-in-custom-interceptor-soap12faultoutinterceptor) ** также – NullPointerException

+1

SOAP всегда POST-сообщения, но против него WSDL – fpmoles

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