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, 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







Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to