简体   繁体   中英

How to map Soap String response to java Object?

I want to map th follow xml response into java object

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
    <ns:OnlineGeneration2Response xmlns:ns="http://webservices.com">
        <ns:return><EstadoDoc>
            <Estado>Ok</Estado>
            <RutEmisor>81201000-K</RutEmisor>
            <TipoDte>52</TipoDte>
            <FolioMimansa>70057</FolioMimansa>
            <Folio>40464</Folio>
            <Glosa>NO INFORMADO</Glosa>
            <UrlDte>url.com</UrlDte>
            </EstadoDoc>
            <EstadoLote>
            <UrlPdf>url.com</UrlPdf>
            <UrlCaratula>url.com</UrlCaratula>
            </EstadoLote></ns:return>
    </ns:OnlineGeneration2Response>
</soapenv:Body>

I have the current domain for mapping

@Data
@AllArgsConstructor
@NoArgsConstructor
@XmlRootElement(name = "EstadoDoc")
@XmlAccessorType(XmlAccessType.FIELD)
public class PaperlessResponse {

  @XmlElement(name = "Estado")
  private String estado;

  @XmlElement(name = "RutEmisor")
  private String rutEmisor;

  @XmlElement(name = "TipoDte")
  private String tipoDte;

  @XmlElement(name = "FolioMimansa")
  private String folioMimansa;

  @XmlElement(name = "Folio")
  private String folio;

  @XmlElement(name = "Glosa")
  private String glosa;

  @XmlElement(name = "UrlDte")
  private String urlDte;

  @XmlElement(name = "EstadoLote")
  private EstadoLote estadoLote;
}

and

@Data
@AllArgsConstructor
@NoArgsConstructor
@XmlRootElement(name = "EstadoLote")
@XmlAccessorType(XmlAccessType.FIELD)
public class EstadoLote {

  @XmlElement(name = "UrlPdf")
  private String urlPdf;

  @XmlElement(name = "UrlCaratula")
  private String urlCaratula;
}

The way to map this response is the follow:

public PaperlessResponse transform(String paperlessResponse)
      throws JAXBException, XMLStreamException, TransformerException {

    paperlessResponse = scapeHtmlCharacter(paperlessResponse);

    XMLInputFactory xif = XMLInputFactory.newFactory();
    XMLEventReader xsr = xif.createXMLEventReader(IOUtils.toInputStream(paperlessResponse));
    xsr.nextTag(); // Advance to Envelope tag

    xsr.nextTag(); // Advance to Body tag
    xsr.nextTag();
    xsr.nextTag();

    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    StringWriter stringWriter = new StringWriter();
    transformer.transform(new StAXSource(xsr), new StreamResult(stringWriter));
    StringReader sr = new StringReader(stringWriter.toString());
    JAXBContext jaxbContext = JAXBContext.newInstance(PaperlessResponse.class);
    Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
    PaperlessResponse result = (PaperlessResponse) unmarshaller.unmarshal(sr);

    return result;
  }

but using junit5 I got:

javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 13; columnNumber: 32; El tipo de elemento "EstadoDoc" debe finalizar por la etiqueta final coincidente "</EstadoDoc>".]
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:310)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:548)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:234)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:199)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:140)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:189)
    at cl.cencosud.shipper.gdd.transformer.response.DocumentResponseTransformer.transform(DocumentResponseTransformer.java:44)
    at cl.cencosud.shipper.gdd.transformer.response.DocumentResponseTransformerTest.validResponseTransformTest(DocumentResponseTransformerTest.java:33)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:675)
    at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:125)
    at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:132)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:124)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:74)
    at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:104)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:62)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:43)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:35)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:202)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:198)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:220)
    at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188)
    at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:102)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:82)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:78)
    at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
    at com.sun.proxy.$Proxy2.stop(Unknown Source)
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:132)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
    at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)

The element type "EstadoDoc" must be terminated by the matching end-tag "EstadoDoc"

Edit 1

Using gradle I create the object from to wsdl.

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
        name = "",
        propOrder = {"_return"}
)
@XmlRootElement(
        name = "OnlineGeneration2Response"
)
public class OnlineGeneration2Response {
    @XmlElementRef(
            name = "return",
            namespace = "http://webservices.online.webapp.paperless.cl",
            type = JAXBElement.class
    )
    protected JAXBElement<String> _return;

    public OnlineGeneration2Response() {
    }

    public JAXBElement<String> getReturn() {
        return this._return;
    }

    public void setReturn(JAXBElement<String> value) {
        this._return = value;
    }
}

but I got the same error using the same transformation:

elemento inesperado (URI:"", local:"EstadoDoc"). Los elementos esperados son <{}AnulaGuia>,<{}AnulaGuiaResponse>,<{}BusinessReply>,<{}BusinessReplyResponse>,<{}Consult>,<{}ConsultCT>,<{}ConsultCTResponse>,<{}ConsultResponse>,<{}GestionEmitido>,<{}GestionEmitidoResponse>,<{}GestionRec>,<{}GestionRecResponse>,<{}OnlineGeneration>,<{}OnlineGeneration2>,<{}OnlineGeneration2Response>,<{}OnlineGenerationBol>,<{}OnlineGenerationBol2>,<{}OnlineGenerationBol2Response>,<{}OnlineGenerationBolCT>,<{}OnlineGenerationBolCTResponse>,<{}OnlineGenerationBolResponse>,<{}OnlineGenerationCT>,<{}OnlineGenerationCTResponse>,<{}OnlineGenerationDte>,<{}OnlineGenerationDte2>,<{}OnlineGenerationDte2Response>,<{}OnlineGenerationDteCT>,<{}OnlineGenerationDteCTResponse>,<{}OnlineGenerationDteResponse>,<{}OnlineGenerationRaw>,<{}OnlineGenerationRaw2>,<{}OnlineGenerationRaw2Response>,<{}OnlineGenerationRawResponse>,<{}OnlineGenerationResponse>,<{}OnlineRecovery>,<{}OnlineRecovery2>,<{}OnlineRecovery2Response>,<{}OnlineRecoveryCT>,<{}OnlineRecoveryCTResponse>,<{}OnlineRecoveryFolio>,<{}OnlineRecoveryFolioResponse>,<{}OnlineRecoveryRec>,<{}OnlineRecoveryRecCT>,<{}OnlineRecoveryRecCTResponse>,<{}OnlineRecoveryRecList>,<{}OnlineRecoveryRecListResponse>,<{}OnlineRecoveryRecResponse>,<{}OnlineRecoveryResponse>,<{}Throwable>,<{}anulaFolioBoleta>,<{}anulaFolioBoletaResponse>,<{}aprobRechLeyMasivo>,<{}aprobRechLeyMasivoResponse>,<{}aprobacionRechazoMasivo>,<{}aprobacionRechazoMasivoResponse>,<{}isNumeric>,<{}isNumericResponse>,<{}listaDocRec>,<{}listaDocRecResponse>,<{}main>,<{}reinyeccionBOMasivo>,<{}reinyeccionBOMasivoResponse>
javax.xml.bind.UnmarshalException: elemento inesperado (URI:"", local:"EstadoDoc"). Los elementos esperados son <{}AnulaGuia>,<{}AnulaGuiaResponse>,<{}BusinessReply>,<{}BusinessReplyResponse>,<{}Consult>,<{}ConsultCT>,<{}ConsultCTResponse>,<{}ConsultResponse>,<{}GestionEmitido>,<{}GestionEmitidoResponse>,<{}GestionRec>,<{}GestionRecResponse>,<{}OnlineGeneration>,<{}OnlineGeneration2>,<{}OnlineGeneration2Response>,<{}OnlineGenerationBol>,<{}OnlineGenerationBol2>,<{}OnlineGenerationBol2Response>,<{}OnlineGenerationBolCT>,<{}OnlineGenerationBolCTResponse>,<{}OnlineGenerationBolResponse>,<{}OnlineGenerationCT>,<{}OnlineGenerationCTResponse>,<{}OnlineGenerationDte>,<{}OnlineGenerationDte2>,<{}OnlineGenerationDte2Response>,<{}OnlineGenerationDteCT>,<{}OnlineGenerationDteCTResponse>,<{}OnlineGenerationDteResponse>,<{}OnlineGenerationRaw>,<{}OnlineGenerationRaw2>,<{}OnlineGenerationRaw2Response>,<{}OnlineGenerationRawResponse>,<{}OnlineGenerationResponse>,<{}OnlineRecovery>,<{}OnlineRecovery2>,<{}OnlineRecovery2Response>,<{}OnlineRecoveryCT>,<{}OnlineRecoveryCTResponse>,<{}OnlineRecoveryFolio>,<{}OnlineRecoveryFolioResponse>,<{}OnlineRecoveryRec>,<{}OnlineRecoveryRecCT>,<{}OnlineRecoveryRecCTResponse>,<{}OnlineRecoveryRecList>,<{}OnlineRecoveryRecListResponse>,<{}OnlineRecoveryRecResponse>,<{}OnlineRecoveryResponse>,<{}Throwable>,<{}anulaFolioBoleta>,<{}anulaFolioBoletaResponse>,<{}aprobRechLeyMasivo>,<{}aprobRechLeyMasivoResponse>,<{}aprobacionRechazoMasivo>,<{}aprobacionRechazoMasivoResponse>,<{}isNumeric>,<{}isNumericResponse>,<{}listaDocRec>,<{}listaDocRecResponse>,<{}main>,<{}reinyeccionBOMasivo>,<{}reinyeccionBOMasivoResponse>
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:714)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:232)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:227)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:94)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1119)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:544)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:526)
    at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:138)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:510)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
    at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:228)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:199)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:140)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:189)
    at cl.cencosud.shipper.gdd.transformer.response.DocumentResponseTransformer.transform(DocumentResponseTransformer.java:43)
    at cl.cencosud.shipper.gdd.transformer.response.DocumentResponseTransformerTest.invalidResponseTransformTest(DocumentResponseTransformerTest.java:33)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:675)
    at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:125)
    at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:132)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:124)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:74)
    at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:104)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:62)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:43)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:35)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:202)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:198)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)

XMLs need a single root Element. You marked your root element as EstadoDoc but also have EstadoLote outside EstadoDoc .

Your class shows EstadoLote as an element of EstadoDoc so you will need to change your xml to the following:

<EstadoDoc>
  <Estado>Ok</Estado>
  <RutEmisor>81201000-K</RutEmisor>
  <TipoDte>52</TipoDte>
  <FolioMimansa>70057</FolioMimansa>
  <Folio>40464</Folio>
  <Glosa>NO INFORMADO</Glosa>
  <UrlDte>url.com</UrlDte>
  <EstadoLote>
    <UrlPdf>url.com</UrlPdf>
    <UrlCaratula>url.com</UrlCaratula>
  </EstadoLote>
</EstadoDoc>

Update 1

In response to your document I believe it wants to return a OnlineGeneration2Response object as specified by the wsdl . What you want is the return value from that object.

Try the following:

OnlineGeneration2Response response = getResponse(); //this is the response from the request
String xml = response.getReturn().getValue();
EstadoDoc estadoDoc = getEstadoDoc(xml); //this is where you parse the return xml to estadoDoc`

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM