[
https://issues.apache.org/jira/browse/AXIS2-5753?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vitaliy Tkachenko updated AXIS2-5753:
-------------------------------------
Description:
On any WS call made in ODE (for example, I think the same is expected anyway
using the Axis2) all HTTP errors are reported appropriately e.g. 404 (Page Not
Found):
[2016-04-05 14:58:50,788] [ODEServer-18] [ERROR]
[org.apache.ode.axis2.SoapExternalService$1$1:306] Couldn't call external web
service 'http://ua007478/error404'.
Error sending message (mex={PartnerRoleMex#4611686018427387916 [PID
{http://http}_00000_http_cafb23ab-1f16-4997-a4de-fa2e2913e275---14] calling
[email protected](...) Status ASYNC}): Transport
error: 404 Error: Not Found
org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
at
org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
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(CommonsHTTPTransportSender.java:396)
at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
at
com.serena.ode.throttling.SerenaThrottledHTTPTransportSender.invoke(SerenaThrottledHTTPTransportSender.java:43)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at
org.apache.ode.axis2.SoapExternalService$1$1.call(SoapExternalService.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
But only in case of 2 errors 500 (Internal Server Error) and 400 (Bad Request)
the message is still parsed further which causes [WstxUnexpectedCharException:
Unexpected character '"'] of course as the message contains no message but HTTP
error description:
[2016-04-05 14:57:23,361] [ODEServer-16] [ERROR]
[org.apache.ode.axis2.SoapExternalService$1$1:306] Couldn't call external web
service 'http://ua007478/error500'.
Error sending message (mex={PartnerRoleMex#4611686018427387914 [PID
{http://http}_00000_http_cafb23ab-1f16-4997-a4de-fa2e2913e275---14] calling
[email protected](...) Status ASYNC}):
com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '"' (code
34) in DOCTYPE declaration; expected a space between public and system
identifiers
at [row,col {unknown-source}]: [1,50]
org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxUnexpectedCharException:
Unexpected character '"' (code 34) in DOCTYPE declaration; expected a space
between public and system identifiers
at [row,col {unknown-source}]: [1,50]
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:123)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
at
org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at
org.apache.ode.axis2.SoapExternalService$1$1.call(SoapExternalService.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.axiom.om.DeferredParsingException:
com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '"' (code
34) in DOCTYPE declaration; expected a space between public and system
identifiers
at [row,col {unknown-source}]: [1,50]
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:706)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:199)
at
org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj:58)
at
org.apache.axiom.om.impl.llom.OMDocumentImpl.buildNext(OMDocumentImpl.java:1)
at
org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj)
at
org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$coreGetFirstChild(CoreParentNodeSupport.aj:75)
at
org.apache.axiom.om.impl.llom.OMDocumentImpl.coreGetFirstChild(OMDocumentImpl.java:1)
at
org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$coreGetFirstChild(CoreParentNodeSupport.aj)
at
org.apache.axiom.core.CoreDocumentSupport.ajc$interMethod$org_apache_axiom_core_CoreDocumentSupport$org_apache_axiom_core_CoreDocument$coreGetDocumentElement(CoreDocumentSupport.aj:33)
at
org.apache.axiom.om.impl.llom.OMDocumentImpl.coreGetDocumentElement(OMDocumentImpl.java:1)
at
org.apache.axiom.om.impl.common.AxiomDocumentSupport.ajc$interMethod$org_apache_axiom_om_impl_common_AxiomDocumentSupport$org_apache_axiom_om_impl_common_AxiomDocument$getOMDocumentElement(AxiomDocumentSupport.aj:25)
at
org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:1)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:582)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:578)
at
org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:198)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:145)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:108)
... 10 more
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character
'"' (code 34) in DOCTYPE declaration; expected a space between public and
system identifiers
at [row,col {unknown-source}]: [1,50]
at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:648)
at
com.ctc.wstx.sr.BasicStreamReader.startDTD(BasicStreamReader.java:2482)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromPrologBang(BasicStreamReader.java:2398)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2058)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
at
org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:691)
... 26 more
This behavior prevents user to proper analyze the cause of the problem with the
WS - it requires time and efforts to understand that the original problem is in
e.g. commonly used error 500 means the WS server has some teporarily problems.
I've found that the cause why Axis2 is doing this is the code in the
org.apache.axis2.transport.http.HTTPSender.handleResponse function (in the
1.6.4 or corresponding HTTPSender implementations in the 1.7.1) which derives
the logic if (statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR || statusCode
== HttpStatus.SC_BAD_REQUEST) allowing the message to be parsed (unless non
blocking API / transport flag is set) instead of throwing exception anyway. Is
there some real reason why exception isn't just thrown anyway including errors
500 and 400?
was:
On any WS call made in ODE (for example, I think the same is expected anyway
using the Axis2) all HTTP errors are reported appropriately e.g. 404 (Page Not
Found):
[2016-04-05 14:58:50,788] [ODEServer-18] [ERROR]
[org.apache.ode.axis2.SoapExternalService$1$1:306] Couldn't call external web
service 'http://ua007478/error404'.
Error sending message (mex={PartnerRoleMex#4611686018427387916 [PID
{http://http}_00000_http_cafb23ab-1f16-4997-a4de-fa2e2913e275---14] calling
[email protected](...) Status ASYNC}): Transport
error: 404 Error: Not Found
org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
at
org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
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(CommonsHTTPTransportSender.java:396)
at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
at
com.serena.ode.throttling.SerenaThrottledHTTPTransportSender.invoke(SerenaThrottledHTTPTransportSender.java:43)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at
org.apache.ode.axis2.SoapExternalService$1$1.call(SoapExternalService.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
But only incase of 2 errors 500 (Internal Server Error) and 400 (Bad Request)
the message is still parsed further which causes [WstxUnexpectedCharException:
Unexpected character '"'] of course as the message contains no message but HTTP
error description:
[2016-04-05 14:57:23,361] [ODEServer-16] [ERROR]
[org.apache.ode.axis2.SoapExternalService$1$1:306] Couldn't call external web
service 'http://ua007478/error500'.
Error sending message (mex={PartnerRoleMex#4611686018427387914 [PID
{http://http}_00000_http_cafb23ab-1f16-4997-a4de-fa2e2913e275---14] calling
[email protected](...) Status ASYNC}):
com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '"' (code
34) in DOCTYPE declaration; expected a space between public and system
identifiers
at [row,col {unknown-source}]: [1,50]
org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxUnexpectedCharException:
Unexpected character '"' (code 34) in DOCTYPE declaration; expected a space
between public and system identifiers
at [row,col {unknown-source}]: [1,50]
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:123)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
at
org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at
org.apache.ode.axis2.SoapExternalService$1$1.call(SoapExternalService.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.axiom.om.DeferredParsingException:
com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '"' (code
34) in DOCTYPE declaration; expected a space between public and system
identifiers
at [row,col {unknown-source}]: [1,50]
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:706)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:199)
at
org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj:58)
at
org.apache.axiom.om.impl.llom.OMDocumentImpl.buildNext(OMDocumentImpl.java:1)
at
org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj)
at
org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$coreGetFirstChild(CoreParentNodeSupport.aj:75)
at
org.apache.axiom.om.impl.llom.OMDocumentImpl.coreGetFirstChild(OMDocumentImpl.java:1)
at
org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$coreGetFirstChild(CoreParentNodeSupport.aj)
at
org.apache.axiom.core.CoreDocumentSupport.ajc$interMethod$org_apache_axiom_core_CoreDocumentSupport$org_apache_axiom_core_CoreDocument$coreGetDocumentElement(CoreDocumentSupport.aj:33)
at
org.apache.axiom.om.impl.llom.OMDocumentImpl.coreGetDocumentElement(OMDocumentImpl.java:1)
at
org.apache.axiom.om.impl.common.AxiomDocumentSupport.ajc$interMethod$org_apache_axiom_om_impl_common_AxiomDocumentSupport$org_apache_axiom_om_impl_common_AxiomDocument$getOMDocumentElement(AxiomDocumentSupport.aj:25)
at
org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:1)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:582)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:578)
at
org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:198)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:145)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:108)
... 10 more
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character
'"' (code 34) in DOCTYPE declaration; expected a space between public and
system identifiers
at [row,col {unknown-source}]: [1,50]
at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:648)
at
com.ctc.wstx.sr.BasicStreamReader.startDTD(BasicStreamReader.java:2482)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromPrologBang(BasicStreamReader.java:2398)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2058)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
at
org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:691)
... 26 more
This behavior prevents user to proper analyze the cause of the problem with the
WS - it requires time and efforts to understand that the original problem is in
e.g. commonly used error 500 means the WS server has some teporarily problems.
I've found that the cause why Axis2 is doing this is the code in the
org.apache.axis2.transport.http.HTTPSender.handleResponse function (in the
1.6.4 or corresponding HTTPSender implementations in the 1.7.1) which derives
the logic if (statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR || statusCode
== HttpStatus.SC_BAD_REQUEST) allowing the message to be parsed (unless non
blocking API / transport flag is set) instead of throwing exception anyway. Is
there some real reason why exception isn't just thrown anyway including errors
500 and 400?
> HTTP errors 500 and 400 are not reported appropriately on WS call
> -----------------------------------------------------------------
>
> Key: AXIS2-5753
> URL: https://issues.apache.org/jira/browse/AXIS2-5753
> Project: Axis2
> Issue Type: Bug
> Components: transports
> Affects Versions: 1.6.4, 1.7.1
> Environment: Win32x64, Tomcat7, ODE 1.3.6
> Reporter: Vitaliy Tkachenko
> Priority: Minor
>
> On any WS call made in ODE (for example, I think the same is expected anyway
> using the Axis2) all HTTP errors are reported appropriately e.g. 404 (Page
> Not Found):
> [2016-04-05 14:58:50,788] [ODEServer-18] [ERROR]
> [org.apache.ode.axis2.SoapExternalService$1$1:306] Couldn't call external web
> service 'http://ua007478/error404'.
> Error sending message (mex={PartnerRoleMex#4611686018427387916 [PID
> {http://http}_00000_http_cafb23ab-1f16-4997-a4de-fa2e2913e275---14] calling
> [email protected](...) Status ASYNC}):
> Transport error: 404 Error: Not Found
> org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
> at
> org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
> 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(CommonsHTTPTransportSender.java:396)
> at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:223)
> at
> com.serena.ode.throttling.SerenaThrottledHTTPTransportSender.invoke(SerenaThrottledHTTPTransportSender.java:43)
> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
> at
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
> at
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
> at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
> at
> org.apache.ode.axis2.SoapExternalService$1$1.call(SoapExternalService.java:266)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> But only in case of 2 errors 500 (Internal Server Error) and 400 (Bad
> Request) the message is still parsed further which causes
> [WstxUnexpectedCharException: Unexpected character '"'] of course as the
> message contains no message but HTTP error description:
> [2016-04-05 14:57:23,361] [ODEServer-16] [ERROR]
> [org.apache.ode.axis2.SoapExternalService$1$1:306] Couldn't call external web
> service 'http://ua007478/error500'.
> Error sending message (mex={PartnerRoleMex#4611686018427387914 [PID
> {http://http}_00000_http_cafb23ab-1f16-4997-a4de-fa2e2913e275---14] calling
> [email protected](...) Status ASYNC}):
> com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '"' (code
> 34) in DOCTYPE declaration; expected a space between public and system
> identifiers
> at [row,col {unknown-source}]: [1,50]
> org.apache.axis2.AxisFault: com.ctc.wstx.exc.WstxUnexpectedCharException:
> Unexpected character '"' (code 34) in DOCTYPE declaration; expected a space
> between public and system identifiers
> at [row,col {unknown-source}]: [1,50]
> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
> at
> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:123)
> at
> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
> at
> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
> at
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
> at
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
> at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
> at
> org.apache.ode.axis2.SoapExternalService$1$1.call(SoapExternalService.java:266)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.axiom.om.DeferredParsingException:
> com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '"' (code
> 34) in DOCTYPE declaration; expected a space between public and system
> identifiers
> at [row,col {unknown-source}]: [1,50]
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:706)
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:199)
> at
> org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj:58)
> at
> org.apache.axiom.om.impl.llom.OMDocumentImpl.buildNext(OMDocumentImpl.java:1)
> at
> org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$buildNext(CoreParentNodeSupport.aj)
> at
> org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethod$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$coreGetFirstChild(CoreParentNodeSupport.aj:75)
> at
> org.apache.axiom.om.impl.llom.OMDocumentImpl.coreGetFirstChild(OMDocumentImpl.java:1)
> at
> org.apache.axiom.core.CoreParentNodeSupport.ajc$interMethodDispatch1$org_apache_axiom_core_CoreParentNodeSupport$org_apache_axiom_core_CoreParentNode$coreGetFirstChild(CoreParentNodeSupport.aj)
> at
> org.apache.axiom.core.CoreDocumentSupport.ajc$interMethod$org_apache_axiom_core_CoreDocumentSupport$org_apache_axiom_core_CoreDocument$coreGetDocumentElement(CoreDocumentSupport.aj:33)
> at
> org.apache.axiom.om.impl.llom.OMDocumentImpl.coreGetDocumentElement(OMDocumentImpl.java:1)
> at
> org.apache.axiom.om.impl.common.AxiomDocumentSupport.ajc$interMethod$org_apache_axiom_om_impl_common_AxiomDocumentSupport$org_apache_axiom_om_impl_common_AxiomDocument$getOMDocumentElement(AxiomDocumentSupport.aj:25)
> at
> org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:1)
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:582)
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:578)
> at
> org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:198)
> at
> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:145)
> at
> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:108)
> ... 10 more
> Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character
> '"' (code 34) in DOCTYPE declaration; expected a space between public and
> system identifiers
> at [row,col {unknown-source}]: [1,50]
> at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:648)
> at
> com.ctc.wstx.sr.BasicStreamReader.startDTD(BasicStreamReader.java:2482)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextFromPrologBang(BasicStreamReader.java:2398)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2058)
> at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
> at
> org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:691)
> ... 26 more
> This behavior prevents user to proper analyze the cause of the problem with
> the WS - it requires time and efforts to understand that the original problem
> is in e.g. commonly used error 500 means the WS server has some teporarily
> problems.
> I've found that the cause why Axis2 is doing this is the code in the
> org.apache.axis2.transport.http.HTTPSender.handleResponse function (in the
> 1.6.4 or corresponding HTTPSender implementations in the 1.7.1) which derives
> the logic if (statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR || statusCode
> == HttpStatus.SC_BAD_REQUEST) allowing the message to be parsed (unless non
> blocking API / transport flag is set) instead of throwing exception anyway.
> Is there some real reason why exception isn't just thrown anyway including
> errors 500 and 400?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]