IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

SAXParseException root element required


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut SAXParseException root element required
    Bonjour,

    J'aimerai récupérer le message xml (soap request) à partir de la couche HTTP.


    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    public class HttpServletFilter implements Filter{
     
           private static Logger log = Logger.getLogger(HttpServletFilter.class);
     
           private FilterConfig config;
     
           public void init(FilterConfig paramFilterConfig) throws ServletException {
                 this.config = paramFilterConfig;
           }
     
           public void doFilter(ServletRequest paramServletRequest,
                        ServletResponse paramServletResponse, FilterChain paramFilterChain)
                        throws IOException, ServletException {
     
     
              HttpServletRequest req = (HttpServletRequest)paramServletRequest;
                try {
     
                 InputStream is = req.getInputStream();
     
               byte[] bytes = IOUtils.toByteArray(is);
     
               String str = new String(bytes, "UTF-8");
     
              //str contient bien le message xml
     
     
     
                 } catch (Exception e) {
                       log.debug(e);
     
                 } finally {
     
                        try {
     
                               paramFilterChain.doFilter(req, paramServletResponse);
                       } catch (Exception e) {
                              log.error(e);
                       }
     
                }
           }
     
     
           public void destroy() {
     
           }
     
    }

    La chaine str contient bien le message xml, or une fois qu'il passe par la méthode doFilter, j'obtiens cette exception :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
     
    [05/09/14 16:11:55:841 CEST]     FFDC Exception:org.xml.sax.SAXParseException SourceId:com.ibm.ws.webservices.engine.SOAPPart.getSOAPEnvelope ProbeId:964 Reporter:com.ibm.ws.webservices.engine.SOAPPart@213d213d
    org.xml.sax.SAXParseException: L'élément racine est requis dans un document syntaxiquement correct.
                    at com.ibm.xml.xlxp2.api.sax.impl.SAX2ParserBase.reportFatalError(SAX2ParserBase.java:471)
                    at com.ibm.xml.xlxp2.api.sax.impl.SAX2DocumentScanner.produceFatalErrorEvent(SAX2DocumentScanner.java:157)
                    at com.ibm.xml.xlxp2.scan.DocumentScanner.reportFatalError(DocumentScanner.java:4886)
                    at com.ibm.xml.xlxp2.scan.DocumentScanner.reportFatalError(DocumentScanner.java:1213)
                    at com.ibm.xml.xlxp2.scan.DocumentScanner.scanProlog(DocumentScanner.java:1774)
                    at com.ibm.xml.xlxp2.scan.DocumentScanner.nextEvent(DocumentScanner.java:1324)
                    at com.ibm.xml.xlxp2.scan.DocumentScanner.parseDocumentEntity(DocumentScanner.java:1176)
                    at com.ibm.xml.xlxp2.api.was.WSXMLReader.parseEvents(WSXMLReader.java:112)
                    at com.ibm.xml.xlxp2.api.sax.impl.SAX2ParserBase.parseEntity(SAX2ParserBase.java:1308)
                    at com.ibm.xml.xlxp2.api.sax.impl.SAX2ParserBase.parse(SAX2ParserBase.java:1359)
                    at javax.xml.parsers.SAXParser.parse(Unknown Source)
                    at com.ibm.ws.webservices.engine.utils.WebServicesParser.parse(WebServicesParser.java:374)
                    at com.ibm.ws.webservices.engine.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:295)
                    at com.ibm.ws.webservices.engine.SOAPPart._getSOAPEnvelope(SOAPPart.java:1064)
                    at com.ibm.ws.webservices.engine.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:628)
                    at com.ibm.ws.webservices.engine.SOAPPart.getEnvelope(SOAPPart.java:656)
                    at com.xxx.xxx.common.HttpServletFilter.doFilter(HttpServletFilter.java:94)
                    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
                    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:125)
                    at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:80)
                    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
                    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:935)
                    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:503)
                    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181)
                    at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
                    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:875)
                    at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
                    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
                    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)
                    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
                    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)
                    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:277)
                    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
                    at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
                    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
                    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
                    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
                    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
                    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
                    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
                    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
                    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1646)
     
    Reporter BEGIN:com.ibm.ws.webservices.engine.SOAPPart@213d213d
    com.ibm.ws.webservices.engine.SOAPPart::log BEGIN:org.apache.commons.logging.impl.Jdk14Logger@1db81db8
    org.apache.commons.logging.impl.Jdk14Logger::logger:com.ibm.ws.logging.WsLogger@1dba1dba
    END:org.apache.commons.logging.impl.Jdk14Logger@1db81db8
     
    com.ibm.ws.webservices.engine.SOAPPart::formNames BEGIN:[Ljava.lang.String;@1ff91ff9
    [
    **undefined-SOAPPart-form**
    FORM_WEBSERVICESINPUTSOURCE
    FORM_SOAP_FAULT
    FORM_WEBSERVICES_FAULT
    FORM_SOAPENVELOPE
    ]
    END:[Ljava.lang.String;@1ff91ff9
     
    com.ibm.ws.webservices.engine.SOAPPart::FORM_NONE:0
    com.ibm.ws.webservices.engine.SOAPPart::FORM_WS_INPUTSOURCE:1
    com.ibm.ws.webservices.engine.SOAPPart::FORM_SOAP_FAULT:2
    com.ibm.ws.webservices.engine.SOAPPart::FORM_MUTABLES:3
    com.ibm.ws.webservices.engine.SOAPPart::FORM_WEBSERVICES_FAULT:3
    com.ibm.ws.webservices.engine.SOAPPart::FORM_SOAPENVELOPE:4
    com.ibm.ws.webservices.engine.SOAPPart::currentContent BEGIN:com.ibm.ws.webservices.utils.WebServicesInputSource@20b320b3
    org.xml.sax.InputSource::publicId:null
    org.xml.sax.InputSource::systemId:null
    org.xml.sax.InputSource::byteStream BEGIN:com.ibm.ws.webservices.utils.WebServicesInputSource$FilterIS@21312131
      java.io.InputStream::MAX_SKIP_BUFFER_SIZE:2048
       java.io.FilterInputStream::in:com.ibm.ws.webcontainer.srt.http.HttpInputStream@2b232b23 depth limit reached
      com.ibm.ws.webservices.utils.WebServicesInputSource$FilterIS::length:0
      com.ibm.ws.webservices.utils.WebServicesInputSource$FilterIS::isBAIS:false
      END:com.ibm.ws.webservices.utils.WebServicesInputSource$FilterIS@21312131
     
    org.xml.sax.InputSource::encoding:utf-8
    org.xml.sax.InputSource::characterStream:null
    com.ibm.ws.webservices.utils.WebServicesInputSource::copyIfNotResettable:false
    com.ibm.ws.webservices.utils.WebServicesInputSource::log BEGIN:org.apache.commons.logging.impl.Jdk14Logger@57ba57ba
      org.apache.commons.logging.impl.Jdk14Logger::logger:com.ibm.ws.logging.WsLogger@57bc57bc
      END:org.apache.commons.logging.impl.Jdk14Logger@57ba57ba
     
    com.ibm.ws.webservices.utils.WebServicesInputSource::_stringContent:null
    com.ibm.ws.webservices.utils.WebServicesInputSource::_byteArrayContent:null
    com.ibm.ws.webservices.utils.WebServicesInputSource::_baisContent:null
    com.ibm.ws.webservices.utils.WebServicesInputSource::_isPossiblyFault:null
    com.ibm.ws.webservices.utils.WebServicesInputSource::class$com$ibm$ws$webservices$utils$WebServicesInputSource:class com.ibm.ws.webservices.utils.WebServicesInputSource
    END:com.ibm.ws.webservices.utils.WebServicesInputSource@20b320b3
     
    com.ibm.ws.webservices.engine.SOAPPart::currentForm:1
    com.ibm.ws.webservices.engine.SOAPPart::targetForm:4
    com.ibm.ws.webservices.engine.SOAPPart::originalContent:null
    com.ibm.ws.webservices.engine.SOAPPart::originalParseLength:-1
    com.ibm.ws.webservices.engine.SOAPPart::cacheWebServicesInputSource:com.ibm.ws.webservices.utils.WebServicesInputSource@20b320b3
    com.ibm.ws.webservices.engine.SOAPPart::cacheSOAPEnvelope:null
    com.ibm.ws.webservices.engine.SOAPPart::cacheSOAPFaultException:null
    com.ibm.ws.webservices.engine.SOAPPart::cacheWebServicesFault:null
    com.ibm.ws.webservices.engine.SOAPPart::msg BEGIN:com.ibm.ws.webservices.engine.Message@209d209d
    javax.xml.soap.SOAPMessage::CHARACTER_SET_ENCODING:javax.xml.soap.character-set-encoding
    javax.xml.soap.SOAPMessage::WRITE_XML_DECLARATION:javax.xml.soap.write-xml-declaration
    com.ibm.ws.webservices.engine.Message::log BEGIN:org.apache.commons.logging.impl.Jdk14Logger@59da59da
      org.apache.commons.logging.impl.Jdk14Logger::logger:com.ibm.ws.logging.WsLogger@59dc59dc
      END:org.apache.commons.logging.impl.Jdk14Logger@59da59da
     
    com.ibm.ws.webservices.engine.Message::USE_BASE64_ENCODED_FOR_NON_TEXTUAL_ATTACHMENTS:com.ibm.ws.webservices.useBase64EncodingForNonTextualAttachments
    com.ibm.ws.webservices.engine.Message::MIME_MULTIPART_RELATED:multipart/related
    com.ibm.ws.webservices.engine.Message::MIME_APPLICATION_DIME:application/dime
    com.ibm.ws.webservices.engine.Message::DEFAULT_ATTACHMENT_IMPL:com.ibm.ws.webservices.engine.attachments.AttachmentsImpl
    com.ibm.ws.webservices.engine.Message::DEFAULT_ATTACHMNET_IMPL:com.ibm.ws.webservices.engine.attachments.AttachmentsImpl
    com.ibm.ws.webservices.engine.Message::mAttachmentsImplClassName:com.ibm.ws.webservices.engine.attachments.AttachmentsImpl
    com.ibm.ws.webservices.engine.Message::MIME_UNKNOWN: 
     com.ibm.ws.webservices.engine.Message::messageType BEGIN:com.ibm.ws.webservices.engine.enumtype.MessageType@443a443a
       com.ibm.ws.webservices.engine.enumtype.Enum::types:java.util.Hashtable@416d416d depth limit reached
       com.ibm.ws.webservices.engine.enumtype.Enum::log:org.apache.commons.logging.impl.Jdk14Logger@41814181 depth limit reached
      com.ibm.ws.webservices.engine.enumtype.Enum::type:null
      com.ibm.ws.webservices.engine.enumtype.Enum::value:2
      com.ibm.ws.webservices.engine.enumtype.Enum::name:request
      com.ibm.ws.webservices.engine.enumtype.Enum::class$com$ibm$ws$webservices$engine$enumtype$Enum:class com.ibm.ws.webservices.engine.enumtype.Enum
       com.ibm.ws.webservices.engine.enumtype.MessageType::type:com.ibm.ws.webservices.engine.enumtype.MessageType$Type@44304430 depth limit reached
      com.ibm.ws.webservices.engine.enumtype.MessageType::UNKNOWN_STR:unknown
      com.ibm.ws.webservices.engine.enumtype.MessageType::REQUEST_STR:request
      com.ibm.ws.webservices.engine.enumtype.MessageType::RESPONSE_STR:response
       com.ibm.ws.webservices.engine.enumtype.MessageType::UNKNOWN:com.ibm.ws.webservices.engine.enumtype.MessageType@44374437 depth limit reached
      com.ibm.ws.webservices.engine.enumtype.MessageType::REQUEST:com.ibm.ws.webservices.engine.enumtype.MessageType@443a443a
       com.ibm.ws.webservices.engine.enumtype.MessageType::RESPONSE:com.ibm.ws.webservices.engine.enumtype.MessageType@443d443d depth limit reached
      com.ibm.ws.webservices.engine.enumtype.MessageType::DEFAULT:com.ibm.ws.webservices.engine.enumtype.MessageType@44374437
      END:com.ibm.ws.webservices.engine.enumtype.MessageType@443a443a
     
    com.ibm.ws.webservices.engine.Message::mSOAPPart:com.ibm.ws.webservices.engine.SOAPPart@213d213d
    com.ibm.ws.webservices.engine.Message::sc BEGIN:com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants@1f2a1f2a
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::envelopePrefix:env
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::encodingPrefix:soapenc
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::namespace:http://www.w3.org/2003/05/soap-envelope
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::envelopeQName:javax.xml.namespace.QName@1e621e62 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::headerQName:javax.xml.namespace.QName@1e6a1e6a depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::bodyQName:javax.xml.namespace.QName@1e721e72 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultQName:javax.xml.namespace.QName@1e7a1e7a depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::encodingStyleQName:javax.xml.namespace.QName@1e821e82 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::encodingRootQName:javax.xml.namespace.QName@1e8a1e8a depth limit reached
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_FAULT_CODE:Code
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_FAULT_SUBCODE:Subcode
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_FAULT_CODE_VALUE:Value
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_FAULT_REASON:Reason
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_FAULT_REASON_TEXT:Text
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_FAULT_DETAIL:Detail
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_FAULT_NODE:Node
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_FAULT_ROLE:Role
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ATTR_RELAY:relay
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_NOT_UNDERSTOOD:NotUnderstood
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_UPGRADE:Upgrade
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ELEM_SUPPORTED_ENVELOPE:SupportedEnvelope
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::ATTR_LANG:lang
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::roleQName:javax.xml.namespace.QName@1e921e92 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::relayQName:javax.xml.namespace.QName@1e9a1e9a depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::mustUnderstandQName:javax.xml.namespace.QName@1eb01eb0 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultDetailQName:javax.xml.namespace.QName@1eb81eb8 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultCodeQName:javax.xml.namespace.QName@1ec01ec0 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultSubcodeQName:javax.xml.namespace.QName@1ec81ec8 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultCodeValueQName:javax.xml.namespace.QName@1ed01ed0 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultReasonQName:javax.xml.namespace.QName@1ed81ed8 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultReasonTextQName:javax.xml.namespace.QName@1ee01ee0 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultRoleQName:javax.xml.namespace.QName@1ee81ee8 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::faultNodeQName:javax.xml.namespace.QName@1ef01ef0 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::notUnderstoodQName:javax.xml.namespace.QName@1f121f12 depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::upgradeQName:javax.xml.namespace.QName@1f1a1f1a depth limit reached
       com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::supportedEnvelopeQName:javax.xml.namespace.QName@1f221f22 depth limit reached
      com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants::PROP_WEBMETHOD:soap12.webmethod
      END:com.ibm.ws.webservices.engine.xmlsoap.SOAP12Constants@1f2a1f2a
     
    com.ibm.ws.webservices.engine.Message::mAttachments BEGIN:com.ibm.ws.webservices.engine.attachments.AttachmentsImpl@21022102
       com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::log:org.apache.commons.logging.impl.Jdk14Logger@2aae2aae depth limit reached
       com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::attachments:java.util.HashMap@21092109 depth limit reached
       com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::orderedAttachments:java.util.LinkedList@211a211a depth limit reached
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::soapPart:com.ibm.ws.webservices.engine.SOAPPart@213d213d
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::mpartStream:null
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::sendtype:1
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::msgObj:com.ibm.ws.webservices.engine.Message@209d209d
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::base64Value:null
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::contentLocation:null
       com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::stackDataHandler:java.util.HashMap@21202120 depth limit reached
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::multipart:null
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::dimemultipart:null
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::class$com$ibm$ws$webservices$engine$attachments$AttachmentsImpl:class com.ibm.ws.webservices.engine.attachments.AttachmentsImpl
      com.ibm.ws.webservices.engine.attachments.AttachmentsImpl::class$javax$activation$DataHandler:null
      END:com.ibm.ws.webservices.engine.attachments.AttachmentsImpl@21022102
     
    com.ibm.ws.webservices.engine.Message::headers BEGIN:javax.xml.soap.MimeHeaders@3cc03cc0
       javax.xml.soap.MimeHeaders::headers:java.util.Vector@3cc23cc2 depth limit reached
      END:javax.xml.soap.MimeHeaders@3cc03cc0
     
    com.ibm.ws.webservices.engine.Message::saveRequired:true
    com.ibm.ws.webservices.engine.Message::properties BEGIN:java.util.Properties@20a420a4
      {
      }
      END:java.util.Properties@20a420a4
     
    com.ibm.ws.webservices.engine.Message::charsetEncoding:utf-8
    com.ibm.ws.webservices.engine.Message::writeXmlDeclaration:false
    com.ibm.ws.webservices.engine.Message::msgContext:null
    com.ibm.ws.webservices.engine.Message::attachImpl:class com.ibm.ws.webservices.engine.attachments.AttachmentsImpl
    com.ibm.ws.webservices.engine.Message::attachImplConstr BEGIN:java.lang.reflect.Constructor@7ea57ea5
       java.lang.reflect.AccessibleObject::ACCESS_PERMISSION:java.lang.reflect.ReflectPermission@625d625d depth limit reached
      java.lang.reflect.AccessibleObject::override:false
       java.lang.reflect.AccessibleObject::reflectionFactory:sun.reflect.ReflectionFactory@628c628c depth limit reached
      java.lang.reflect.Constructor::clazz:class com.ibm.ws.webservices.engine.attachments.AttachmentsImpl
      java.lang.reflect.Constructor::slot:738017352
       java.lang.reflect.Constructor::parameterTypes:[Ljava.lang.Class;@7e577e57 depth limit reached
       java.lang.reflect.Constructor::exceptionTypes:[Ljava.lang.Class;@7e547e54 depth limit reached
      java.lang.reflect.Constructor::modifiers:1
      java.lang.reflect.Constructor::signature:null
      java.lang.reflect.Constructor::genericInfo:null
      java.lang.reflect.Constructor::annotations:null
      java.lang.reflect.Constructor::parameterAnnotations:null
      java.lang.reflect.Constructor::j9Constructor:null
      java.lang.reflect.Constructor::securityCheckCache:null
      java.lang.reflect.Constructor::LANGUAGE_MODIFIERS:7
      java.lang.reflect.Constructor::constructorAccessor:null
       java.lang.reflect.Constructor::root:java.lang.reflect.Constructor@7e4b7e4b depth limit reached
      END:java.lang.reflect.Constructor@7ea57ea5
     
    com.ibm.ws.webservices.engine.Message::checkForAttchmentSupport:false
    com.ibm.ws.webservices.engine.Message::attachmentSupportEnabled:true
    com.ibm.ws.webservices.engine.Message::class$com$ibm$ws$webservices$engine$Message:class com.ibm.ws.webservices.engine.Message
    com.ibm.ws.webservices.engine.Message::class$com$ibm$ws$webservices$engine$attachments$AttachmentsImpl:class com.ibm.ws.webservices.engine.attachments.AttachmentsImpl
    END:com.ibm.ws.webservices.engine.Message@209d209d
     
    com.ibm.ws.webservices.engine.SOAPPart::mimeHeaders BEGIN:javax.xml.soap.MimeHeaders@21442144
    javax.xml.soap.MimeHeaders::headers BEGIN:java.util.Vector@21462146
      {
       javax.xml.soap.MimeHeader@21512151 depth limit reached
      }
      END:java.util.Vector@21462146
     
    END:javax.xml.soap.MimeHeaders@21442144
     
    com.ibm.ws.webservices.engine.SOAPPart::class$com$ibm$ws$webservices$engine$SOAPPart:class com.ibm.ws.webservices.engine.SOAPPart
    END:com.ibm.ws.webservices.engine.SOAPPart@213d213d
    Quand je met en commentaire les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    byte[] bytes = IOUtils.toByteArray(is);
    String str = new String(bytes, "UTF-8");
    le traitement passe...

    donc dès que l'objet inputstream est lu, le traitement plante.

    Auriez-vous une idée ?

    J'utilise websphere 7.0

    Pour info, je souhaite ici juste récupérer le flux xml et récupérer des informations à transmettre dans la response HTTP.

    Merci de votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par ekremyilmaz Voir le message
    donc dès que l'objet inputstream est lu, le traitement plante.

    Auriez-vous une idée ?
    Ben, normal.
    Il est bien gentil, ton filtre, mais a priori si la servlet reçoit un document XML, c'est pour s'en servir, et elle ne risque pas de le trouver ailleurs que dans le InputStream que tu viens de vider -_-°.

    Si tu avais un contrôle total sur la servlet, ton filtre se contenterait de parser le document en un objet Document, l'attacher comme attribut de la requête, et la servlet irait le trouver là au lieu de lire l'InputStream elle-même.
    ... Mais je suppose que tu n'as pas ce contrôle total.

    Dans ce cas-là, l'usage est de remplacer la HttpServletRequest par une nouvelle HttpServletRequest "wrapper" que tu passes en paramètre à chain.doFilter(). Il faut construire ce wrapper pour qu'à l'appel de getInputStream(), il renvoie les données que tu viens de stocker dans un byte[].
    La plupart des frameworks proposent des wrappers de ce genre, pas trop durs à utiliser.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 117
    Points
    117
    Par défaut
    Salut,

    ta réponse est bien gentille , mais elle fonctionne à merveille !!!!

    merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JDOM] Comment parser un child d'un root element avec org.jdom ?
    Par Battosaiii dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 10/10/2011, 09h20
  2. [XSD] Undefined root element - xml
    Par Larson dans le forum Valider
    Réponses: 2
    Dernier message: 26/11/2010, 10h10
  3. Ajouter un root element à un fichier XML via Java
    Par filor dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 09/09/2009, 14h57
  4. Réponses: 3
    Dernier message: 22/02/2008, 12h06
  5. [Aps net 1.1]There are multiple root elements
    Par ChristopheOce dans le forum ASP.NET
    Réponses: 5
    Dernier message: 11/12/2006, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo