2013-11-25 13 views
5

Sto tentando di risolvere il problema riportato di seguito negli ultimi due giorni ma non riesco ancora a risolverlo. un sacco di forum ma invanoWstxUnexpectedCharException: carattere imprevisto "" "(codice 34) nella dichiarazione DOCTYPE; previsto uno spazio tra gli identificatori pubblici e di sistema

* po 'di storia:. il mio codice funzionava bene nella ENV devp ma per accedere al sever di produzione ho ricevuto nuovo URL e tre nuovi certificati dopo aver incluso con successo i certificati di nuovo file dell'archivio di fiducia. Sto affrontando il problema di seguito. Per favore aiuto.

2013-11-25 11:32:30,373 INFO[BuilderUtil] OMException in getSOAPBuilder 
org.apache.axiom.om.OMException: 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,46] 
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296) 
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:198) 
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:154) 
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:140) 
    at org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:686) 
    at org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:197) 
    at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:145) 
    at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:108) 
    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$NonBlockingInvocationWorker.run(OutInAxisOperation.java:446) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
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,46] 
    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:668) 
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214) 
    ... 14 more 
2013-11-25 11:32:30,378 INFO [BuilderUtil] Remaining input stream :[] 
2013-11-25 11:32:30,380 DEBUG [AuditUtilities] Request Message Id: urn:uuid:5f75a15c-ad57-4d00-b277-75fe7b1e241d 
2013-11-25 11:32:30,380 DEBUG [AuditUtilities] Response Message Id: null 
2013-11-25 11:32:30,380 DEBUG [AuditUtilities] Response Message Data: null 
.210

La mia richiesta SOAP sembra mi correggo:

<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><ns4:product xmlns:ns4="http://ns.electronichealth.net.au/hi/xsd/common/CommonCoreElements/3.0" soapenv:mustUnderstand="false"><ns4:vendor><ns1:qualifier xmlns:ns1="http://ns.electronichealth.net.au/hi/xsd/common/QualifiedIdentifier/3.0">http://ns.electronichealth.net.au/id/hi/vendorid/1.0</ns1:qualifier><ns1:id xmlns:ns1="http://ns.electronichealth.net.au/hi/xsd/common/QualifiedIdentifier/3.0">SDS</ns1:id></ns4:vendor><ns4:productName>HI</ns4:productName><ns4:productVersion>10.1</ns4:productVersion><ns4:platform>LINUX</ns4:platform></ns4:product><h:signature xmlns:h="http://ns.electronichealth.net.au/hi/xsd/common/CommonCoreElements/3.0"><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><ds:Reference URI="#body-c3c18409-d0df-4aed-b294-87af248c61f0"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><ds:DigestValue>3pGWeWvyYHDdsDTu0F7qATI3Jp4=</ds:DigestValue></ds:Reference><ds:Reference URI="#timestamp-232e1ed9-f97a-4515-89bd-a3683fab0fce"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><ds:DigestValue>dGJxcKsX+y4jb0ndH1RQDqeWnTw=</ds:DigestValue></ds:Reference><ds:Reference URI="#user-69d4eead-8b69-4e0a-85d7-b2a58867aaa0"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><ds:DigestValue>9ET9aqC4jkINuYY8OhKsAJPEwX8=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>W24rpxUgpbTzxvJUoj5WpBsEssdaaddd56464t4eyYCAa2q9J0izrWIuukvOovde5h+xxxd1+5h/7JREGERGERGEGEGEGRTH5YT34R3EHYJGBDSEFERHJNFGGFFWEBzj7Jj3wfGs3WOLwsvhCuVBRY79mXTAxyQZYiUl7+tk3Pdm5YcSM0ZKfQJyUChIL1mjxALhwdCJkHOneJenjTgFaGRP+0iPF51TDc7l5ruxw8NdsSuN7P8D6lax3Fa4lck2iW/+t43yJ6cqTjZztMPuyKcYUgFhCS4334534234ERFGWBqyZhgRGFREGREG4543645FGER34WEFW4TERSygB8Gj+nx+217qRFTXD8/vcr8/BA1zWDLR05QdyZSDfuOfWTXpgfDcPTqedteeaww5cetv8L5J0dpFvRUkVDFGFGERcTOzmQALQZ+2C81RaNidKeQz++Q==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>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</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></h:signature><ns4:timestamp xmlns:ns4="http://ns.electronichealth.net.au/hi/xsd/common/CommonCoreElements/3.0" xml:id="timestamp-232e1ed9-f97a-4515-89bd-a3683fab0fce"><ns4:created>2013-11-25T11:32:27.296+11:00</ns4:created><ns4:expires>2013-11-25T12:32:27.296+11:00</ns4:expires></ns4:timestamp><ns4:user xmlns:ns4="http://ns.electronichealth.net.au/hi/xsd/common/CommonCoreElements/3.0" xml:id="user-69d4eead-8b69-4e0a-85d7-b2a58867aaa0"><ns1:qualifier xmlns:ns1="http://ns.electronichealth.net.au/hi/xsd/common/QualifiedIdentifier/3.0">http://sdspathology.com.au/id/hi/userid/1.0</ns1:qualifier><ns1:id xmlns:ns1="http://ns.electronichealth.net.au/hi/xsd/common/QualifiedIdentifier/3.0">TEST_SDS_USER_ID</ns1:id></ns4:user><wsa:To>https://www3.medicareaustralia.gov.au/pcert/soap/services/</wsa:To><wsa:MessageID>urn:uuid:5f75a15c-ad57-4d00-b277-75fe7b1e241d</wsa:MessageID><wsa:Action>http://ns.electronichealth.net.au/hi/svc/ConsumerSearchIHIBatchAsync/3.0/ConsumerSearchIHIBatchAsyncPortType/submitSearchIHIBatchRequest</wsa:Action></soapenv:Header><soapenv:Body xml:id="body-c3c18409-d0df-4aed-b294-87af248c61f0"><ns12:submitSearchIHIBatch xmlns:ns12="http://ns.electronichealth.net.au/hi/svc/ConsumerSearchIHIBatchAsync/3.0"><ns12:searchIHIBatchRequest><searchIHI xmlns="http://ns.electronichealth.net.au/hi/xsd/consumermessages/SearchIHI/3.0"><s36:medicareCardNumber xmlns:s36="http://ns.electronichealth.net.au/hi/xsd/consumercore/ConsumerCoreElements/3.0">2950249651</s36:medicareCardNumber></searchIHI><ns11:requestIdentifier xmlns:ns11="http://ns.electronichealth.net.au/hi/xsd/consumermessages/SearchIHIBatch/3.0">d1f21610-6cb9-4e60-9673-18f43a4500b5</ns11:requestIdentifier></ns12:searchIHIBatchRequest></ns12:submitSearchIHIBatch></soapenv:Body></soapenv:Envelope> 

Si prega di suggerire.

+1

Si noti che questa è una di quelle regole di sintassi XML inutili che dimostra che non è stata progettata dai progettisti di linguaggi. – EJP

+0

Hai già fatto la tua domanda. I commenti destinati a 'bump' non hanno questo effetto qui. Per favore cancellali. – EJP

+0

Anche io sto affrontando lo stesso problema nel server di produzione. Ho provato le opzioni suggerite ma ho ancora ricevuto questo errore. Qualcuno può dirmi come aggiustarlo. Ecco il messaggio di errore: 'ERRORE [stderr] (pool-1544-thread-1) causato da: javax.wsdl.WSDLException: WSDLException: faultCode = PARSER_ERROR: com.ctc.wstx.exc.WstxUnexpectedCharException: carattere imprevisto '' '(codice 34) nella dichiarazione DOCTYPE: previsto uno spazio tra gli identificatori pubblici e di sistema ERRORE [stderr] (pool-1544-thread-1) in [row, col, system-id]: [1,50, " http: //XXX.XXX.XX.XX: 9080/meaweb/wsdl/web_WS_INCID_STATUS.wsdl "]' – dev

risposta

5

Aveva un problema molto simile. Il file WSDL viene consegnato, ma le chiamate sull'indirizzo di bind non riescono con questo errore di doctype fasullo. Nel nostro ambiente di produzione, le richieste http provenienti dall'esterno della rete aziendale vengono scambiate su https. La soluzione era richiedere il file WSDL usando https, quindi tutto funzionava.

+0

La mia soluzione era simile - non http-> https, ma il server ha risposto con il codice di stato HTTP 301 spostato in modo permanente, che ha causato un problema simile. Risolto tramite l'indirizzamento del wsdl con il nuovo url. – Paul

1

Ho avuto un problema simile. Si dovrebbe avere un errore di sintassi alla linea 46 nel file WSDL

[row,col {unknown-source}]:[1,46] 
+0

tecnicamente l'errore di sintassi sarà sulla riga 45 se il file inizia sulla linea 1 – MacGyver

3

Il problema è che la risposta non è XML, è più probabile che una pagina HTML. Nel mio caso, il servizio SOAP ero richiedente non esisteva così mi è stato sempre una pagina di errore HTML, che inizia come

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 

Ci errore si riferisce a quella del secondo ultimo carattere, il doppio preventivo.

+0

La stessa cosa qui, la risposta era una "cattiva richiesta" perché l'applicazione stava inviando un endpoint http: // sulla porta 443 (avrebbe dovuto essere https: // se sta usando 443, o 80 se sta usando http). Usando un browser, SoapUI e wireshark mi hanno aiutato (se hai bisogno di consigli). – Asoub