Could you please send the exact full content of the four HTTP
exchanges (in text format, not xml): request / response between client
/ servicemix and between servicemix / jboss ?

Cheers,
Guillaume Nodet

On 5/12/06, bebop01 <[EMAIL PROTECTED]> wrote:

Hello,

I've tried to write a simple example in which a service consumer (SC) calls
a service  provider (SP) via servicemix. The SP is a web service running on
jboss. The SC is a java application using JAX-RPC to call the SP.
Without servicemix everything works well. Now I've put servicemix in the
middle using the following servicemix.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0";
       xmlns:foo="http://servicemix.org/demo/";>

  <!-- the JBI container -->
  <sm:container id="jbi"
                useMBeanServer="true"
                createMBeanServer="true"
                dumpStats="true"
                statsInterval="10">

        <sm:activationSpecs>

                <!-- Create a http server binding on port 8912  and have it 
forward to the
foo:stockQuote -->
                <sm:activationSpec componentName="httpReceiver"
                                                   service="foo:httpBinding"
                                                   endpoint="httpReceiver"
                                                   
destinationService="foo:stockQuote">
                  <sm:component>
                    <bean 
class="org.apache.servicemix.components.http.HttpConnector">
                              <property name="host" value="localhost"/>
                              <property name="port" value="8912"/>
                    </bean>
                  </sm:component>
                </sm:activationSpec>

                <!-- This just invokes another service -->
                <sm:activationSpec componentName="stockQuote"
                                                   service="foo:stockQuote"
                                                   endpoint="stockQuote">
                  <sm:component>
                        <bean 
class="org.apache.servicemix.components.http.HttpInvoker">
                                <property name="url"
value="http://10.3.102.192:8080/opsservice/ops"/>
                        </bean>
                  </sm:component>
                </sm:activationSpec>

        </sm:activationSpecs>
  </sm:container>

</beans>

I can see that the message is passed over to jboss. There it throws the
following error:

javax.xml.rpc.JAXRPCException: Cannot create SOAPFault message for:
javax.xml.rpc.soap.SOAPFaultException: javax.xml.soap.SOAPException:
Unsupported content type: text/html; charset=UTF-8

After some investigation with a http monitoring tool I finally figured out
that jboss is right, because servicemix sends a wrong http header which
looks like the following:


  <HTTPHeaders>
  <script_name />
  <server_protocol>HTTP/1.1</server_protocol>
  <server_port>8912</server_port>
  <user-agent>Java/1.5.0_06</user-agent>
  <path_info>/</path_info>
  <request_method>POST</request_method>
  <remote_addr>127.0.0.1</remote_addr>
  <accept>text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*;
q=.2</accept>
  <connection>keep-alive</connection>
  <content_length>435</content_length>
  <server_name>localhost</server_name>
  <soapaction>""</soapaction>
  <content_type>text/xml; charset=utf-8</content_type>
  <remote_host>127.0.0.1</remote_host>
  <content-type>text/html; charset=UTF-8</content-type>
  <host>10.3.102.192:8080</host>
  <content-length>434</content-length>
  </HTTPHeaders>

Especially interesting is that it contains two content-type entries. The
second one is wrong. I assume is was added by servicemix.

The original http header which works fine looks like this:

  <HTTPHeaders>
  <content-type>text/xml; charset=utf-8</content-type>
  <accept>text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*;
q=.2</accept>
  <content-length>420</content-length>
  <soapaction>""</soapaction>
  <user-agent>Java/1.5.0_06</user-agent>
  <host>10.3.102.192:8080</host>
  <connection>keep-alive</connection>
  </HTTPHeaders>

Any ideas what to do? Is there a way to configure how the http alteration
works?
I just want to send a SOAP message unmodified from the SC to the SP.
--
View this message in context: 
http://www.nabble.com/wrong-http-header-t1608026.html#a4359390
Sent from the ServiceMix - User forum at Nabble.com.




--
Cheers,
Guillaume Nodet

Reply via email to