Вот история:SOAP UI отображает ошибку, даже после получения ошибки 500. нужно смотреть то же самое в JAVA
Отправка запроса от SoapUI (5.2.1) дает мне либо правильный ответ или, в случае недопустимых параметров, ошибки в виде XML. Глядя на журнал SoapUI это то, что я вижу:
Wed Jan 18 16:32:39 EST 2017:DEBUG:Attempt 1 to execute request
Wed Jan 18 16:32:39 EST 2017:DEBUG:Sending request: POST/XBC/services/TranslateGeometryService HTTP/1.1
Wed Jan 18 16:32:48 EST 2017:DEBUG:Receiving response: HTTP/1.1 401 Unauthorized
Wed Jan 18 16:32:48 EST 2017:DEBUG:Connection can be kept alive for 10000 MILLISECONDS
Wed Jan 18 16:32:48 EST 2017:DEBUG:Target requested authentication
Wed Jan 18 16:32:48 EST 2017:DEBUG:Authorization challenge processed
Wed Jan 18 16:32:48 EST 2017:DEBUG:Authentication scope: BASIC 'Spring Security Application'@mywebservice:80
Wed Jan 18 16:32:48 EST 2017:INFO:mywebservice:80 requires authentication with the realm 'Spring Security Application'
Wed Jan 18 16:32:48 EST 2017:DEBUG:Found credentials
Wed Jan 18 16:32:48 EST 2017:DEBUG:Attempt 2 to execute request
Wed Jan 18 16:32:48 EST 2017:DEBUG:Sending request: POST/XBC/services/TranslateGeometryService HTTP/1.1
Wed Jan 18 16:33:14 EST 2017:DEBUG:Receiving response: HTTP/1.1 500 Internal Server Error
Wed Jan 18 16:33:14 EST 2017:DEBUG:Connection shut down
Wed Jan 18 16:33:14 EST 2017:INFO:Got response for [TranslateGeometrySoap11.getLocationFromTramPoleTrackOffset:Request 1] in 35794ms (312 bytes)
(Обратите внимание, что эти 312 байт приходят после ошибки 500 и соединения закрыли сообщения)
окно ответа, в то же время, в SoapUI показывает это :
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring xml:lang="en">Error: No Track exists with Track Code: CHS-CSK-UP-TW</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
Это идеально и работает как я ожидаю, что это работает.
Теперь для моей проблемы, которая серьезно сводит меня с ума. При попытке отправить точно такой же запрос от моего кода Java, который должен вернуть ошибку выше, я получаю IOException, который говорит: Сервер вернул HTTP-код ответа: 500 для URL: http://mywebservice/XBC/services/TranslateGeometryService
Таким образом, в значительной степени то же самое как показывает SOAPUI в журнале.
Но ...
Независимо от того, что я делаю в моем коде я не могу получить это сообщение в faultstring, что SoapUI отображает: "No Track не существует с кодом Трек: CHS-CSK-UP-TW".
Как SOAPUI делает это после получения ошибки 500? Или, что более важно, как я могу получить его в JAVA после получения ошибки 500?
Пробовал играть с классом SoapFaultException и SoapFault, но я больше ничего не мог найти.
Спасибо всем, кто пытается ответить на этот вопрос.
Приветствия, Pierre
Показать код, пожалуйста? – Rao
Код работает отлично Rao, так как я общаюсь с веб-сервисом в java без проблем. Мне просто нужно добраться до этой ошибки, когда я получаю ошибку IOException 500 (например, SOAPUI), чтобы я мог отображать это для своих пользователей вместо «error 500» – kosmos2