I just verified that the problem lies in the soap-namespace. I need to have it http://schemas.xmlsoap.org/soap/envelope/ instead of "http://www.w3.org/2003/05/soap-envelope". I tried forcing it by setting soapVersion="1.1" but it didn't change anything :-( Any idea how to get that namespace right?
thanks, Johannes
Hi, i now actually think its something different thats wrong here: this is the body of the request made by sevicemix hhtpbc:<?xml version='1.0' encoding='UTF-8'?><soap:Envelope xmlns:ns="http://www.esri.com/schemas/ArcGIS/9.2" xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Header /> <soap:Body> <ns:GetServiceDescriptions /> </soap:Body> </soap:Envelope> this is one made by soapui:<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.esri.com/schemas/ArcGIS/9.2"><soapenv:Header/> <soapenv:Body> <ns:GetServiceDescriptions/> </soapenv:Body> </soapenv:Envelope>Servicemix http-bc adds an extra <?xml version='1.0' encoding='UTF-8'?> tag at the beginning of the request.Can this be prevented? They also use different namespace for soap, does this matter? thanks, JohannesHi Johannes, YOu can try with cxf bc, which support soapAction in header Regards Freeman Johannes Elsinghorst wrote:Yes, but i think it wirtes the tag into the soap message (body of the post request) not into the header.Johannes -------- Original-Nachricht --------Datum: Tue, 08 Apr 2008 10:30:33 +0200 Von: Gert Vanthienen <[EMAIL PROTECTED]> An: [email protected] Betreff: Re: simple http soap gatewayJohannes,According to http://servicemix.apache.org/servicemix-http.html, the http provider endpoint allows you to set this using the "soapAction" attribute.Gert Johannes Elsinghorst wrote:soapActionheader is missing inthe request that is made to the service by the http-provider-su. Can i configure the httpbc to put that header in the post request?I looked at the requests with wireshark, it seems that theinformationI'll post the xbean.xml later,when im back from work. thanks ,Johannes -------- Original-Nachricht --------Datum: Tue, 08 Apr 2008 08:42:12 +0200 Von: Gert Vanthienen <[EMAIL PROTECTED]> An: [email protected] Betreff: Re: simple http soap gatewayJohannes,Not sure what's wrong here. The exception looks like you're sending an HTML document instead of a SOAP Envelope to the /arcgis/services service. Could you post the contents of the xbean.xml file? You can also try using CXF-BC instead, which is a dedicated HTTP/SOAP and JMS/SOAP binding component. Have a look at http://servicemix.apache.org/servicemix-cxf-bc.html for moreorg.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:194)on this. Gert Johannes Elsinghorst wrote:Hello, i want to configure servicemix as a simple gateway for a soap WS.I got it working in so far, that i can receive the wsdl of that proxied service.But when i invoke an operation on it (via soapui) it gives me thiserror:<html> <head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/><title>Error 500</title> </head> <body> <h2>HTTP ERROR: 500</h2><pre>org.apache.servicemix.soap.SoapFault: Unrecognized element: html at [1,1]. Expecting 'Envelope'.</pre><p>RequestURI=/arcgis/services/</p> <h3>Caused by:</h3><pre>java.lang.Exception: org.apache.servicemix.soap.SoapFault: Unrecognized element: html at [1,1]. Expecting 'Envelope'.atorg.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)atorg.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)atorg.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)atorg.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)atorg.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)atorg.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)atorg.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)at org.mortbay.jetty.Server.handle(Server.java:313) atorg.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)atorg.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:511)atorg.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)atorg.apache.servicemix.soap.marshalers.SoapReader.readSoapUsingStax(SoapReader.java:167)Caused by: org.apache.servicemix.soap.SoapFault: Unrecognized element:html at [1,1]. Expecting 'Envelope'. atorg.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:89)atorg.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:76)atorg.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:164)atorg.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)atorg.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)atorg.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)atorg.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)atorg.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)atorg.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)atorg.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)atjava.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)atorg.apache.servicemix.soap.marshalers.SoapReader.readSoapUsingStax(SoapReader.java:167)at java.lang.Thread.run(Thread.java:619)</pre> <h3>Caused by:</h3><pre>org.apache.servicemix.soap.SoapFault: Unrecognized element: html at [1,1]. Expecting 'Envelope'.atorg.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:89)atorg.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:76)atorg.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:164)atorg.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)atorg.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)atorg.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)atorg.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)atorg.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)atorg.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)atorg.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)atjava.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)atcom.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:548)at java.lang.Thread.run(Thread.java:619)</pre> <p> <i> <small> <a href="http://jetty.mortbay.org/">Powered byJetty://</a></small> </i> </p> </body> </html> When i configure the endpoint without soap="true" i get this error: <html> <head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/><title>Error 500</title> </head> <body> <h2>HTTP ERROR: 500</h2> <pre>Attempted read on closed stream.</pre> <p>RequestURI=/arcgis/services/</p> <h3>Caused by:</h3><pre>com.ctc.wstx.exc.WstxIOException: Attempted read on closed stream.atcom.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:331)at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:604) at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:660)atorg.apache.servicemix.jbi.jaxp.StAXSourceTransformer.toXMLStreamReader(StAXSourceTransformer.java:86)atorg.apache.servicemix.soap.marshalers.SoapWriter.writeSimpleMessage(SoapWriter.java:120)atorg.apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java:92)atorg.apache.servicemix.http.processors.ConsumerProcessor.sendFault(ConsumerProcessor.java:277)atorg.apache.servicemix.http.processors.ConsumerProcessor.processFault(ConsumerProcessor.java:234)atorg.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:201)atorg.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)atorg.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)atorg.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)atorg.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)atorg.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)atorg.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)atorg.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)at org.mortbay.jetty.Server.handle(Server.java:313) atorg.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)atorg.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:511)atorg.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)atorg.apache.commons.httpclient.AutoCloseInputStream.isReadAllowed(AutoCloseInputStream.java:165)Caused by: java.io.IOException: Attempted read on closed stream. atorg.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:106)atcom.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:245)at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) at java.io.InputStreamReader.read(InputStreamReader.java:167) atcom.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:132)atcom.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:543)atorg.apache.commons.httpclient.AutoCloseInputStream.isReadAllowed(AutoCloseInputStream.java:165)... 24 more</pre> <h3>Caused by:</h3> <pre>java.io.IOException: Attempted read on closed stream. atorg.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:106)atcom.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:245)at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) at java.io.InputStreamReader.read(InputStreamReader.java:167) atcom.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:132)atcom.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:543)atcom.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:331)at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:604) at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:660)atorg.apache.servicemix.jbi.jaxp.StAXSourceTransformer.toXMLStreamReader(StAXSourceTransformer.java:86)atorg.apache.servicemix.soap.marshalers.SoapWriter.writeSimpleMessage(SoapWriter.java:120)atorg.apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java:92)atorg.apache.servicemix.http.processors.ConsumerProcessor.sendFault(ConsumerProcessor.java:277)atorg.apache.servicemix.http.processors.ConsumerProcessor.processFault(ConsumerProcessor.java:234)atorg.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:201)atorg.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)atorg.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)atorg.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)atorg.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)atorg.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)atorg.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)atorg.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)at org.mortbay.jetty.Server.handle(Server.java:313) atorg.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)atorg.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:511)atorg.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)</pre>at<p> <i> <small> <a href="http://jetty.mortbay.org/">Powered byJetty://</a></small> </i> </p> </body> </html> Can anybody tell whats wrong here? thanks, Johannes
signature.asc
Description: OpenPGP digital signature
