Проблема:
При проксировании запроса возникает ошибка:
[2012-12-05 18:21:58,341] INFO - HTTPSender Unable to sendViaPost to url[http://localhost:8084/mysrv]
org.apache.axis2.AxisFault: Transport error: 415 Error: Unsupported Media Type
at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:308)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSende
.java:450)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:277)
at org.apache.axis2.engine.AxisEngine$TransportNonBlockingInvocationWorker.run(AxisEngine.java:627)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Причина:
Заголовок Content-Type, передаваемый шиной конечному веб-сервису, не поддерживается последним. В моем случае значение заголовка было "application/xml", тогда как сервис ожидал "text/xml" (о чем кстати он и писал в свои логи).
Решение:
В цепочке медиации установить свойство "messageType" в области видимости "axis2":
<property name="messageType" value="text/xml" scope="axis2"/>
Тогда Message Builder сформирует правильное значение HTTP-заголовка.
Комментариев нет:
Отправить комментарий