You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sreenivas K (Jira)" <ji...@apache.org> on 2023/08/02 06:22:00 UTC

[jira] [Commented] (CXF-8904) TransformInInterceptor and SAAJInInterceptor - Getting SoapFault when accessing WSDL

    [ https://issues.apache.org/jira/browse/CXF-8904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17750124#comment-17750124 ] 

Sreenivas K commented on CXF-8904:
----------------------------------

[~reta] This is what im getting in logs:

 
{color:#000000}InputStream is:: org.apache.cxf.transport.http.AbstractHTTPDestination$1@32349729{color}

> TransformInInterceptor and SAAJInInterceptor - Getting SoapFault when accessing WSDL
> ------------------------------------------------------------------------------------
>
>                 Key: CXF-8904
>                 URL: https://issues.apache.org/jira/browse/CXF-8904
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 3.5.3
>            Reporter: Sreenivas K
>            Priority: Major
>
> Due to my peculiar usecase, i had to configure both *org.apache.cxf.feature.StaxTransformFeature (to transform namespaces) and SAAJInInterceptor*  *(to modify soap body for a case).*
> But due to this, when i accessed webservice *?wsdl* in browser, its failing with below exception:
> _org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader._
>         _at org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.handleMessage(SAAJInInterceptor.java:145) ~[cxf-rt-bindings-soap-3.5._
> _3.jar:3.5.3]_
>   _Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog_
>  _at [row,col
> {unknown-source}
> ]: [1,0]_
>         _at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:701) ~[woodstox-core-6.2.8.jar:6.2.8]_
>         _at com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2235) ~[woodstox-core-6.2.8.jar:6.2.8]_
>  
> When i looked into source code of  _*org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor, found below code to validate whether its GET request or not, which is failing and so it proceeded further and thrown that exception:*_
>  
> {color:#000000} {color}{color:#7f0055}public{color}{color:#000000} {color}{color:#7f0055}boolean{color}{color:#000000} isGET(T {color}{color:#6a3e3e}message{color}{color:#000000}) {{color}
> {color:#000000} String {color}{color:#6a3e3e}method{color}{color:#000000} = (String) {color}{color:#6a3e3e}message{color}{color:#000000}.get({color}{color:#2a00ff}"org.apache.cxf.request.method"{color}{color:#000000});{color}
> {color:#000000} {color}{color:#7f0055}return{color}{color:#000000} {color}{color:#2a00ff}"GET"{color}{color:#000000}.equals({color}{color:#6a3e3e}method{color}{color:#000000}) && {color}{color:#6a3e3e}message{color}{color:#000000}.{color}{color:#000000}getContent{color}{color:#000000}(XMLStreamReader.{color}{color:#7f0055}class{color}{color:#000000}) == {color}{color:#7f0055}null{color}{color:#000000};{color}
> {color:#000000} }{color}
> Here, this condition, *{color:#6a3e3e}message{color}{color:#000000}.{color}{color:#000000}getContent{color}{color:#000000}(XMLStreamReader.{color}{color:#7f0055}class{color}{color:#000000}) == {color}{color:#7f0055}null,{color}* {color:#172b4d}is failing and reason i found is, its being set in *TransformInInterceptor,* which is gettng added to Interceptor Chain when *StaxTranformFeature* configured to cxf bus.{color}
> {color:#172b4d}To fix it (for now), i can remove that condition by extending the interceptor and overriding *isGET* method. But i just want to know is this expected or a bug ? And if i remove that condition, any other issues i may get? Or is there any other solution to address my problem?{color}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)