api-gateway icon indicating copy to clipboard operation
api-gateway copied to clipboard

Documentation on using rest2soap-json

Open shyamsathyanathan opened this issue 7 years ago • 3 comments

Hi I have been trying to make the rest2soap-json example work with another more complex SOAP API. I find it difficult to configure the xsl files with respect to parsing data from JSON body of the request.

It is stated here that the body is directly converted to XML in case appropriate Content-Type header is set on the request, but do we need to set the requestXSLT attribute in the proxies.xml? If yes, what would the xsl file look like?

As of now, I get the following error when I try to leave the requestXSLT attribute blank in the proxies.xml file.

javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77)
	at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79)
	at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119)
	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: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source)
	... 13 more
Caused by: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	... 14 more
---------
javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77)
	at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79)
	at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119)
	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.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	... 14 more
---------
com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77)
	at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79)
	at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
---------
org.xml.sax.SAXParseException; lineNumber: 28; columnNumber: 65; Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77)
	at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79)
	at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
---------
com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77)
	at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79)
	at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
---------
org.xml.sax.SAXParseException; lineNumber: 28; columnNumber: 65; Open quote is expected for attribute "width" associated with an  element type  "hr".
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95)
	at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77)
	at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128)
	at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79)
	at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234)
	at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

And no, I did not have any element called width or hr in the proxies.xml or get2proxy.xsl files.

It would be very helpful if you could add a basic example of parsing the body as well like how you did for the URI.

Thanks, Shyam

shyamsathyanathan avatar Jan 22 '18 14:01 shyamsathyanathan

Hi,

have a look at the sample in the folder examples/rest2soap-json of the Membrane distribution. To use that solution you should be familiar with basic XSLT.

Cheers, Thomas

Am 22.01.18 um 15:05 schrieb Shyam Sathyanathan:

Hi I have been trying to make the rest2soap-json example work with another more complex SOAP API. I find it difficult to configure the xsl files with respect to parsing data from JSON body of the request.

It is stated here https://www.membrane-soa.org/service-proxy-doc/4.4/configuration/reference/rest2Soap.htm that the body is directly converted to XML in case appropriate |Content-Type| header is set on the request, but do we need to set the |requestXSLT| attribute in the |proxies.xml|? If yes, what would the xsl file look like?

As of now, I get the following error when I try to leave the |requestXSLT| attribute blank in the |proxies.xml| file.

|javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77) at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79) at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70) at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234) at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119) 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: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source) ... 13 more Caused by: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) ... 14 more --------- javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77) at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79) at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70) at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234) at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119) 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.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) ... 14 more --------- com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77) at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79) at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70) at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234) at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) --------- org.xml.sax.SAXParseException; lineNumber: 28; columnNumber: 65; Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77) at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79) at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70) at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234) at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) --------- com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77) at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79) at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70) at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234) at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) --------- org.xml.sax.SAXParseException; lineNumber: 28; columnNumber: 65; Open quote is expected for attribute "width" associated with an element type "hr". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:95) at com.predic8.membrane.core.interceptor.xslt.XSLTTransformer.transform(XSLTTransformer.java:77) at com.predic8.membrane.core.interceptor.rest.REST2SOAPInterceptor.handleResponse(REST2SOAPInterceptor.java:191) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeResponseHandlers(InterceptorFlowController.java:128) at com.predic8.membrane.core.interceptor.InterceptorFlowController.invokeHandlers(InterceptorFlowController.java:79) at com.predic8.membrane.core.transport.http.AbstractHttpHandler.invokeHandlers(AbstractHttpHandler.java:70) at com.predic8.membrane.core.transport.http.HttpServerHandler.process(HttpServerHandler.java:234) at com.predic8.membrane.core.transport.http.HttpServerHandler.run(HttpServerHandler.java:119) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) |

And no, I did not have any element called width or hr in the proxies.xml or get2proxy.xsl files.

It would be very helpful if you could add a basic example of parsing the body as well like how you did for the URI.

Thanks, Shyam

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/membrane/service-proxy/issues/307, or mute the thread https://github.com/notifications/unsubscribe-auth/AB1-OK6P--6EWsSP_D8e6oClKByvrjP1ks5tNJWqgaJpZM4RnIjK.

-- Viele Grüße, Thomas Bayer

-- predic8 GmbH Koblenzer Strasse 65

53173 Bonn

http://predic8.de Tel: +49 (0) 228 5552576-0 Fax: +49 (0) 228 5552576-50

Amtsgericht Bonn HRB 16152 Geschäftsführer: Thomas Bayer, Tobias Polley

predic8 avatar Jan 22 '18 16:01 predic8

The example in that folder covers only the input as part of the request URL path right? What about a json in the request body?

For the accessing a value in the request path, I can do this:

<xsl:value-of select="//path/component[2]"/>

But I am not sure how to access the JSON key value pairs the same way in the XSLT files. (I want to access them individually because some of the keys should have different namespaces in the generated SOAP request XML).

Sorry if this is a very basic request. I'm not very familiar with writing XSLT files for transforming JSON into XML. A link to an external resource where I can look this up would also help a lot.

shyamsathyanathan avatar Jan 24 '18 08:01 shyamsathyanathan

@shyamsathyanathan this might help you . I am access json data and mapping it to SOAP.

The LastName here is a JSON key

<xsl:value-of select="/*/body/root/LastName"/>

 <xsl:template match="/">
        <soapenv:Envelope>
            <soapenv:Body>
                <!-- switch over operations -->
                <xsl:choose>
                    <xsl:when test="/*/@method = 'POST'">
                        <ns2:testRequest>
                            <StudentId>
                                <xsl:value-of select="//path/component[5]"/>
                            </StudentId>
                            <SchoolName>
                                <xsl:value-of select="//path/component[6]"/>
                            </SchoolName>
                            <pinCode>
                                <xsl:value-of `select="/*/body/root/pinCode"/>`
                            </pinCode>
                            <LastName>
                                <xsl:value-of select="/*/body/root/LastName"/>
                            </reservationEventId>
                        </ns2:LastName>
                    </xsl:when>
                </xsl:choose>
            </soapenv:Body>
        </soapenv:Envelope>
    </xsl:template>

neshant avatar Apr 27 '18 20:04 neshant