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, Johannes
Hi 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 gateway
Johannes,
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:
I looked at the requests with wireshark, it seems that the
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'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 gateway
Johannes,
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 more
information
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 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>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'.
at
org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:194)
at
org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)
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)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:511)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.apache.servicemix.soap.SoapFault: Unrecognized
element:
html at [1,1]. Expecting 'Envelope'.
at
org.apache.servicemix.soap.marshalers.SoapReader.readSoapUsingStax(SoapReader.java:167)
at
org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:89)
at
org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:76)
at
org.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:164)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
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'.
at
org.apache.servicemix.soap.marshalers.SoapReader.readSoapUsingStax(SoapReader.java:167)
at
org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:89)
at
org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:76)
at
org.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:164)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)</pre>
<p>
<i>
<small>
<a href="http://jetty.mortbay.org/">Powered by
Jetty://</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.
at
com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:548)
at
com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:604)
at
com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:660)
at
com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:331)
at
org.apache.servicemix.jbi.jaxp.StAXSourceTransformer.toXMLStreamReader(StAXSourceTransformer.java:86)
at
org.apache.servicemix.soap.marshalers.SoapWriter.writeSimpleMessage(SoapWriter.java:120)
at
org.apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java:92)
at
org.apache.servicemix.http.processors.ConsumerProcessor.sendFault(ConsumerProcessor.java:277)
at
org.apache.servicemix.http.processors.ConsumerProcessor.processFault(ConsumerProcessor.java:234)
at
org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:201)
at
org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)
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)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:511)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: java.io.IOException: Attempted read on closed stream.
at
org.apache.commons.httpclient.AutoCloseInputStream.isReadAllowed(AutoCloseInputStream.java:165)
at
org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:106)
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)
at
com.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:245)
at
com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:132)
at
com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:543)
... 24 more</pre>
<h3>Caused by:</h3>
<pre>java.io.IOException: Attempted read on closed stream.
at
org.apache.commons.httpclient.AutoCloseInputStream.isReadAllowed(AutoCloseInputStream.java:165)
at
org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:106)
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)
at
com.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:245)
at
com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:132)
at
com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:543)
at
com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:604)
at
com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:660)
at
com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:331)
at
org.apache.servicemix.jbi.jaxp.StAXSourceTransformer.toXMLStreamReader(StAXSourceTransformer.java:86)
at
org.apache.servicemix.soap.marshalers.SoapWriter.writeSimpleMessage(SoapWriter.java:120)
at
org.apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java:92)
at
org.apache.servicemix.http.processors.ConsumerProcessor.sendFault(ConsumerProcessor.java:277)
at
org.apache.servicemix.http.processors.ConsumerProcessor.processFault(ConsumerProcessor.java:234)
at
org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:201)
at
org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)
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)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:511)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)</pre>
<p>
<i>
<small>
<a href="http://jetty.mortbay.org/">Powered by
Jetty://</a>
</small>
</i>
</p> </body>
</html>
Can anybody tell whats wrong here?
thanks, Johannes