If an HTTP error status is sent back by the http server, a fault will
be generated.
I guess your server is sending back a 4xx or 5xx http status.

On Thu, Jul 31, 2008 at 10:56 AM, gigeril <[EMAIL PROTECTED]> wrote:
>
> Yeah thank you that solved the problem!
> But no I've another Problem:
> In my TCP consumer bc I do a sendsync to the http provider. The http
> provider endpoint get the message and contact the http server, wich returns
> a message. Then the http provider doesn't send me the response back. It
> sends only a fault, but in this fault there is the right message from the
> server. Why is it doing that??
>
> Here is the debug output of the smx console window
>
> DEBUG - DeliveryChannelImpl            - SendSync
> ID:10.22.20.113-11b784b1162-3:0 in DeliveryChannel{tcp-bc}
> DEBUG - SecuredBroker                  - send exchange with secure broker
> DEBUG - SecuredBroker                  - service name
> :{http://knapp.com/tcphttp}http_provider
> DEBUG - SecuredBroker                  - operation name :null
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> ID:10.22.20.113-11b784b1162-3:0 (187b5ff) to be answered i
> n DeliveryChannel{tcp-bc} from sendSync
> DEBUG - SedaQueue                      -
> [EMAIL PROTECTED] dequeued
> exchange: I
> nOut[
>  id: ID:10.22.20.113-11b784b1162-3:0
>  status: Active
>  role: provider
>  service: {http://knapp.com/tcphttp}http_provider
>  endpoint: httpprovider
>  in: <?xml version="1.0" encoding="UTF-8"?><message>hallo</message>
> ]
> DEBUG - HttpComponent                  - Received exchange: status: Active,
> role: provider
> DEBUG - HttpComponent                  - Retrieved correlation id:
> ID:10.22.20.113-11b784b1162-3:0
> DEBUG - DeliveryChannelImpl            - Send
> ID:10.22.20.113-11b784b1162-3:0 in DeliveryChannel{servicemix-http}
> DEBUG - SecuredBroker                  - send exchange with secure broker
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> [EMAIL PROTECTED] dequeued
> exchange:
> InOut[
>  id: ID:10.22.20.113-11b784b1162-3:0
>  status: Active
>  role: consumer
>  service: {http://knapp.com/tcphttp}http_provider
>  endpoint: httpprovider
>  in: <?xml version="1.0" encoding="UTF-8"?><message>hallo</message>
>  fault: <?xml version="1.0" encoding="UTF-8"?><KA/> --> this is the right
> message from my http server!!!
> ]
> DEBUG - DeliveryChannelImpl            - Notifying exchange
> ID:10.22.20.113-11b784b1162-3:0(187b5ff) in DeliveryChannel{
> tcp-bc} from processInboundSynchronousExchange
> DEBUG - DeliveryChannelImpl            - Notified:
> ID:10.22.20.113-11b784b1162-3:0(187b5ff) in DeliveryChannel{tcp-bc} from
> sendSync
>
>
>
> Here is my tcp binding component consumer (snippet):
>
>
> public void doCommunication(Socket s )
>        {
>
>                //The Socket s is the connected client where I read from (this 
> method gets
> called after the tcpserver.accept() method)
>                 try
>                {
>
>                        InputStream is = s.getInputStream();
>                        InputStreamReader isr = new InputStreamReader(is);
>                        BufferedReader br = new BufferedReader(isr);
>                        String anfrage = "", zeile = null;
>                        do
>                        {
>                                zeile = br.readLine();
>                                if (zeile != null)
>                                        anfrage = anfrage + zeile;
>
>                        } while (zeile != null);
>
>                        MessageExchange me =
> this.getChannel().createExchangeFactoryForService(this.getTargetService()).createExchange(this.getDefaultMep());
>                        NormalizedMessage nm =me.createMessage();
>                        nm.setContent(new StringSource(anfrage));
>                        me.setMessage(nm, "in");
>                        if (me instanceof InOut)
>                        {
>                                this.sendSync(me);
>                                NormalizedMessage nmin = me.getMessage("out"); 
>  // me.getMessage("out)
> --> returns null!"
>                                StringSource ss = 
> (StringSource)nmin.getContent();
>                                OutputStream os = s.getOutputStream();
>                                OutputStreamWriter osw = new 
> OutputStreamWriter(os);
>                                BufferedWriter bw = new BufferedWriter(osw);
>                                bw.write(ss.getText());
>                                bw.flush();
>                                bw.close();
>                                os.close();
>                                s.shutdownOutput();
>
>                        }
>
>
>
>
> gnodet wrote:
>>
>> I think the reason for this stack trace is that you did not put any
>> namespace for your service name.  The service attribute is a QName, so
>> you need to try something like:
>>
>> <beans xmlns:http="http://servicemix.apache.org/http/1.0";
>> xmlns:tns="htp://foo.com/bar">
>>  <http:endpoint service="tns:http_provider"
>>                 endpoint="httpprovider"
>>                                 role="provider"
>>                                 locationURI="http://localhost:8888/";
>>   />
>> </beans>
>>
>>
>> On Wed, Jul 30, 2008 at 8:54 AM, gigeril <[EMAIL PROTECTED]> wrote:
>>>
>>> Hi I am trying to get a TCP - Http Connection to work. I've written my
>>> own
>>> TCP Binding Component wich works fine if I use both the consumer and the
>>> producer of it.
>>> But if I try to get a tcp consumer and a http provider to run I get the
>>> following Exception.
>>> This Exception happens when the HTTP Server returns the response to the
>>> jetty client (http-bc provider). I see this as the http Server get the
>>> correct Message that I send with my tcp client.
>>>
>>> Exception in thread "HttpClient-1" java.lang.IllegalStateException
>>>        at
>>> org.mortbay.jetty.client.HttpConnection$Handler.startRequest(HttpConnection.java:375)
>>>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:370)
>>>        at
>>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
>>>        at
>>> org.mortbay.jetty.client.HttpConnection.handle(HttpConnection.java:236)
>>>        at
>>> org.mortbay.jetty.client.HttpClient$SocketConnector$1.run(HttpClient.java:320)
>>>        at
>>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>>>
>>> This error is displayed if the xbean.xml of the http_provider-su looks
>>> like
>>> this:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>>
>>> <beans xmlns:http="http://servicemix.apache.org/http/1.0";>
>>>  <http:provider service="http_provider"
>>>                 endpoint="httpprovider"
>>>                 locationURI="http://localhost:8888/";
>>>   />
>>> </beans>
>>>
>>> This is also the error that I get If I am trying to run a http consumer
>>> and
>>> a http provider. So I think my tcp bc is implemented correctly.
>>>
>>>
>>> Then I tried to use the http bc with this xbean.xml
>>> <?xml version="1.0" encoding="UTF-8"?>
>>>
>>> <beans xmlns:http="http://servicemix.apache.org/http/1.0";>
>>>  <http:endpoint service="http_provider"
>>>                 endpoint="httpprovider"
>>>                                 role="provider"
>>>                                 locationURI="http://localhost:8888/";
>>>   />
>>> </beans>
>>>
>>> There I get this stacktrace right after deploying it to Servicemix.
>>>
>>> java.lang.RuntimeException: org.xml.sax.SAXParseException: The value of
>>> the
>>> attribute "prefix="xmlns",localpart="ns1",ra
>>> wname="xmlns:ns1"" is invalid. Prefixed namespace bindings may not be
>>> empty.
>>>        at
>>> org.apache.servicemix.jbi.deployment.DescriptorFactory.buildDescriptor(DescriptorFactory.java:141)
>>>        at
>>> org.apache.servicemix.jbi.deployment.DescriptorFactory.buildDescriptor(DescriptorFactory.java:80)
>>>        at
>>> org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.<init>(ServiceUnitLifeCycle.java:67)
>>>        at
>>> org.apache.servicemix.jbi.framework.Registry.registerServiceUnit(Registry.java:746)
>>>        at
>>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:518)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:35
>>> 0)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:253)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateExternalArchive(AutoDeploymentService.java:20
>>> 1)
>>>        at
>>> org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBIContainer.java:476)
>>>        at
>>> org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchive(JBIContainer.java:486)
>>>        at
>>> org.apache.servicemix.jbi.framework.AdminCommandsService.deployServiceAssembly(AdminCommandsService.java:209)
>>>
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>        at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at
>>> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
>>>        at
>>> org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseStandardMBean.java:323)
>>>        at
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
>>>        at
>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
>>>        at
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)
>>>        at
>>> javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
>>>        at
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)
>>>        at java.security.AccessController.doPrivileged(Native Method)
>>>        at
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1366)
>>>        at
>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>        at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at
>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
>>>        at sun.rmi.transport.Transport$1.run(Transport.java:159)
>>>        at java.security.AccessController.doPrivileged(Native Method)
>>>        at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
>>>        at
>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
>>>        at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
>>>        at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
>>>        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)
>>> Caused by: org.xml.sax.SAXParseException: The value of the attribute
>>> "prefix="xmlns",localpart="ns1",rawname="xmlns:ns1"
>>> " is invalid. Prefixed namespace bindings may not be empty.
>>>        at
>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:
>>> 195)
>>>        at
>>> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
>>>        at
>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
>>>        at
>>> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
>>>        at
>>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(XMLNSDocumentScannerImpl.java:
>>> 526)
>>>        at
>>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.ja
>>> va:277)
>>>        at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocument
>>> FragmentScannerImpl.java:2740)
>>>        at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
>>>        at
>>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
>>>        at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScanne
>>> rImpl.java:508)
>>>        at
>>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
>>>        at
>>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
>>>        at
>>> com.sun.org.apache.xerces.internal.jaxp.validation.StreamValidatorHelper.validate(StreamValidatorHelper.java:
>>> 144)
>>>        at
>>> com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:107)
>>>        at javax.xml.validation.Validator.validate(Validator.java:127)
>>>        at
>>> org.apache.servicemix.jbi.deployment.DescriptorFactory.buildDescriptor(DescriptorFactory.java:115)
>>>        ... 38 more
>>>
>>>
>>> Note: I haven't changed any other file after changing the xbean.xml of
>>> the
>>> http provider.
>>>
>>> So it seems that a namespace with the prefix ns1 isn't correctly
>>> specified
>>> but I didn't specify this namespace and i don't know where it comes from.
>>>
>>> I've already searched for this error and I found that you wrote that I
>>> should dissable the jbi generation for the http provider su. I tried but
>>> it
>>> doesn'T work as I think the jbi.xml is needed for an su to get deployed
>>> correctly.
>>>
>>>
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/http-endpoint-does-not-work-%28neither-%3Chttp%3Aendpoint....-nor-%3Chttp%3Aprovider%3E-tp18727143p18727143.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Cheers,
>> Guillaume Nodet
>> ------------------------
>> Blog: http://gnodet.blogspot.com/
>>
>>
>
> --
> View this message in context: 
> http://www.nabble.com/http-endpoint-does-not-work-%28neither-%3Chttp%3Aendpoint....-nor-%3Chttp%3Aprovider%3E-tp18727143p18750361.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Reply via email to