Lars,

Thanks for the answer. We will try to switch to CXF with our web services.

Regards,
Martin


 
Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems Business 
Solutions GmbH, Raunheim, Registereintragung / Registration: Amtsgericht 
Darmstadt 83850
Geschaeftsfuehrung / Management Board: Bernd Appel

 -----Ursprüngliche Nachricht-----

Von: Lars Heinemann [mailto:[EMAIL PROTECTED] 
Gesendet: Donnerstag, 26. Juni 2008 10:35
An: [email protected]
Betreff: Re: XFireRuntimeException while running example wsdl_first with Fault

Martin,

the XFire component is a lightweight component in smx. These lw components are 
no longer maintained. I would suggest to you using servicemix-cxf-* components 
for building webservices.

Regards
Lars



On Thursday 26 June 2008 10:24:18 [EMAIL PROTECTED] wrote:
> After doing some research I found out that the same scenario is 
> working when I am using CXF instead of XFire (cxf-wsdl-first example). 
> I was really surprised that ServiceMix  XFire is not working correctly 
> with something basic like faults.
>
> Which servicemix component should I use for building a web service in 
> general? Are there any best practices which framework to choose? Pro 
> and cons XFire vs. CXF?
>
> Thanks,
> Martin
>
>
>
>
> Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems 
> Business Solutions GmbH, Raunheim, Registereintragung / Registration: 
> Amtsgericht Darmstadt 83850 Geschaeftsfuehrung / Management Board: 
> Bernd Appel
>
>  -----Ursprüngliche Nachricht-----
>
> Von: GROSS, MARTIN
> Gesendet: Montag, 23. Juni 2008 19:55
> An: '[email protected]'
> Betreff: XFireRuntimeException while running example wsdl_first with 
> Fault
>
> Hi,
>
> I am using ServiceMix 3.2.1 . I created a JSR181 web service with some 
> custom defined faults. As I got an XFireRuntimeException when a fault 
> was created I tried the provided ServiceMix wsdl_first example to find 
> out what is wrong with my service.
>
> When I run the wsdl_first example
> (apache-servicemix-3.2.1\examples\wsdl-first) as described with the 
> client.html. Everything is ok as long as I use preset values like:
>
> <?xml version="1.0" encoding="UTF-8"?> <env:Envelope 
> xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";
>              
> xmlns:tns="http://servicemix.apache.org/samples/wsdl-first/types";>
> <env:Body>
>     <tns:GetPerson>
>       <tns:personId>world</tns:personId>
>     </tns:GetPerson>
>   </env:Body>
> </env:Envelope>
>
> The result is as it should be:
>
> STATUS: 200
> <?xml version='1.0' encoding='UTF-8'?><env:Envelope  
>xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";><env:Body><GetPer
>sonR esponse 
>xmlns="http://servicemix.apache.org/samples/wsdl-first";><personId
> 
>xmlns="http://servicemix.apache.org/samples/wsdl-first/types";>world</pe
>rson
>Id><ssn
> 
>xmlns="http://servicemix.apache.org/samples/wsdl-first/types";>000-000-0
>000<
>/ssn><name
> 
>xmlns="http://servicemix.apache.org/samples/wsdl-first/types";>Guillaume
></na
>me></GetPersonResponse></env:Body></env:Envelope>
>
>
> Now, if I want to test the UnknownPersonFault setting the personId to
> empty: ...
> <tns:personId></tns:personId>
> ...
>
> I get an HTTP Error 500 back to the client.html:
>
> STATUS: 500
> <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>Premature end of file.</pre> 
> <p>RequestURI=/PersonService/</p><h3>Caused
> by:</h3><pre>org.xml.sax.SAXParseException: Premature end of file. ...
>
> On the ServiceMix side a Fault is created as expected and should be 
> sent to the client. But then this fault causes a XFireRuntimeException 
> ending in a HTTP 500 error:
>
> 17:20:26,531 | ERROR | pool-flow.seda.servicemix-jsr181-thread-2 |
> DefaultFaultHandler      | re.handler.DefaultFaultHandler   96 | Could not
> send fault. org.codehaus.xfire.XFireRuntimeException: Couldn't get 
> property {http://wsdl_first.samples.servicemix.apache.org}faultInfo 
> from bean [EMAIL PROTECTED]
> Nested exception is java.lang.IllegalArgumentException: object is not 
> an instance of declaring class
>
> _Full_ Servicemix log:
> 17:18:34,281 | INFO  | RMI TCP Connection(4)-57.57.247.229 |  
>ServiceAssemblyLifeCycle | ework.ServiceAssemblyLifeCycle  111 | 
>Starting  service assembly: wsdl-first-sa 17:18:34,296 | INFO  | RMI TCP
> Connection(4)-57.57.247.229 | ServiceUnitLifeCycle     |
> framework.ServiceUnitLifeCycle   78 | Initializing service unit:
> wsdl-first-jsr181-su 17:18:34,296 | INFO  | RMI TCP
> Connection(4)-57.57.247.229 | ServiceUnitLifeCycle     |
> framework.ServiceUnitLifeCycle   78 | Initializing service unit:
> wsdl-first-http-su 17:18:34,296 | INFO  | RMI TCP
> Connection(4)-57.57.247.229 | ServiceUnitLifeCycle     |
> framework.ServiceUnitLifeCycle   97 | Starting service unit:
> wsdl-first-jsr181-su 17:18:34,484 | INFO  | RMI TCP
> Connection(4)-57.57.247.229 | ServiceUnitLifeCycle     |
> framework.ServiceUnitLifeCycle   97 | Starting service unit:
> wsdl-first-http-su 17:18:34,765 | INFO  | RMI TCP
> Connection(4)-57.57.247.229 | jetty                    |
> ervicemix.http.jetty.JCLLogger   83 | jetty-6.1.5 17:18:34,828 | INFO  |
> RMI TCP Connection(4)-57.57.247.229 | jetty                    |
> ervicemix.http.jetty.JCLLogger   83 | Started
> [EMAIL PROTECTED]:8192 17:20:26,515 | INFO  |
> pool-flow.seda.servicemix-jsr181-thread-2 | DefaultFaultHandler      |
> re.handler.DefaultFaultHandler   39 | Fault occurred!
> org.apache.servicemix.samples.wsdl_first.UnknownPersonFault
>       at
> 
>org.apache.servicemix.samples.wsdl_first.PersonImpl.getPerson(PersonImp
>l.ja
>va:34) at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
>       at
> 
>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
>rImp
>l.java:25) at java.lang.reflect.Method.invoke(Method.java:585)
>       at
> 
>org.codehaus.xfire.service.invoker.AbstractInvoker.invoke(AbstractInvok
>er.j
>ava:54) at
> 
>org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage
>(Ser
>viceInvocationHandler.java:322) at
> 
>org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(Servi
>ceIn
>vocationHandler.java:86) at
> 
>org.codehaus.xfire.service.binding.ServiceInvocationHandler.execute(Ser
>vice
>InvocationHandler.java:134) at
> 
>org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(Serv
>iceI
>nvocationHandler.java:109) at
> 
>org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:
>131)
> at
> 
>org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.
>java
>:64) at
> 
>org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.ja
>va:3
>8) at
> 
>org.apache.servicemix.jsr181.Jsr181ExchangeProcessor.process(Jsr181Exch
>ange
>Processor.java:114) at
> 
>org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLife
>Cycl
>e.java:538) at
> 
>org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBa
>seLi
>feCycle.java:490) at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.
>java:46) at
> 
>org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
>Deli
>veryChannelImpl.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.jav
>a:16
>7) at
> 
>org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:
>134)
> at
> 
>java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecut
>or.j
>ava:650) at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:
>675) at java.lang.Thread.run(Thread.java:595)
> 17:20:26,531 | ERROR | pool-flow.seda.servicemix-jsr181-thread-2 |
> DefaultFaultHandler      | re.handler.DefaultFaultHandler   96 | Could not
> send fault. org.codehaus.xfire.XFireRuntimeException: Couldn't get 
>property  {http://wsdl_first.samples.servicemix.apache.org}faultInfo 
>from bean  [EMAIL PROTECTED]
> Nested exception is java.lang.IllegalArgumentException: object is not 
>an  instance of declaring class java.lang.IllegalArgumentException: 
>object is  not an instance of declaring class at  
>sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at
> 
>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
>va:3
>9) at
> 
>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
>rImp
>l.java:25) at java.lang.reflect.Method.invoke(Method.java:585)
>       at
> 
>org.codehaus.xfire.aegis.type.basic.BeanType.readProperty(BeanType.java
>:442
>) at
> 
>org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:
>377)
> at
> 
>org.codehaus.xfire.aegis.AegisBindingProvider.writeParameter(AegisBindi
>ngPr
>ovider.java:222) at
> 
>org.codehaus.xfire.service.binding.AbstractBinding.writeParameter(Abstr
>actB
>inding.java:273) at
> 
>org.codehaus.xfire.handler.CustomFaultHandler.handleFault(CustomFaultHa
>ndle
>r.java:64) at
> 
>org.codehaus.xfire.handler.CustomFaultHandler.invoke(CustomFaultHandler
>.jav
>a:51) at
> 
>org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:
>131)
> at
> 
>org.codehaus.xfire.handler.DefaultFaultHandler.sendFault(DefaultFaultHa
>ndle
>r.java:88) at
> 
>org.codehaus.xfire.handler.DefaultFaultHandler.invoke(DefaultFaultHandl
>er.j
>ava:51) at
> 
>org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(Servi
>ceIn
>vocationHandler.java:99) at
> 
>org.codehaus.xfire.service.binding.ServiceInvocationHandler.execute(Ser
>vice
>InvocationHandler.java:134) at
> 
>org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(Serv
>iceI
>nvocationHandler.java:109) at
> 
>org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:
>131)
> at
> 
>org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.
>java
>:64) at
> 
>org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.ja
>va:3
>8) at
> 
>org.apache.servicemix.jsr181.Jsr181ExchangeProcessor.process(Jsr181Exch
>ange
>Processor.java:114) at
> 
>org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLife
>Cycl
>e.java:538) at
> 
>org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBa
>seLi
>feCycle.java:490) at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.
>java:46) at
> 
>org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
>Deli
>veryChannelImpl.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.jav
>a:16
>7) at
> 
>org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:
>134)
> at
> 
>java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecut
>or.j
>ava:650) at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:
>675) at java.lang.Thread.run(Thread.java:595)
> 17:20:26,546 | WARN  | btpool1-1  | jetty                    |
> ervicemix.http.jetty.JCLLogger   96 | Nested in
> javax.servlet.ServletException: Failed to process request:
> org.xml.sax.SAXParseException: Premature end of file.:
> org.xml.sax.SAXParseException: Premature end of file.
>       at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
>       at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
>       at
> 
>org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSourceFromStream(
>Sour
>ceTransformer.java:248) at
> 
>org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTran
>sfor
>mer.java:161) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeDetails(SoapWrite
>r.ja
>va:337) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeSoap11Fault(SoapW
>rite
>r.java:267) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeFault(SoapWriter.
>java
>:226) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeSoapEnvelope(Soap
>Writ
>er.java:209) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeSimpleMessage(Soa
>pWri
>ter.java:113) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java:
>92)
> at
> 
>org.apache.servicemix.http.processors.ConsumerProcessor.sendFault(Consu
>merP
>rocessor.java:277) at
> 
>org.apache.servicemix.http.processors.ConsumerProcessor.processFault(Co
>nsum
>erProcessor.java:234) at
> 
>org.apache.servicemix.http.processors.ConsumerProcessor.process(Consume
>rPro
>cessor.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(ContextHandle
>rCol
>lection.java:211) at
> 
>org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.ja
>va:1
>14) 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(Sele
>ctCh
>annelConnector.java:511) at
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:
>442) 17:20:26,546 | WARN  | btpool1-1  | jetty                    |
> ervicemix.http.jetty.JCLLogger   96 | /PersonService/
> org.xml.sax.SAXParseException: Premature end of file.
>       at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
>       at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
>       at
> 
>org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSourceFromStream(
>Sour
>ceTransformer.java:248) at
> 
>org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTran
>sfor
>mer.java:161) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeDetails(SoapWrite
>r.ja
>va:337) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeSoap11Fault(SoapW
>rite
>r.java:267) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeFault(SoapWriter.
>java
>:226) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeSoapEnvelope(Soap
>Writ
>er.java:209) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.writeSimpleMessage(Soa
>pWri
>ter.java:113) at
> 
>org.apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java:
>92)
> at
> 
>org.apache.servicemix.http.processors.ConsumerProcessor.sendFault(Consu
>merP
>rocessor.java:277) at
> 
>org.apache.servicemix.http.processors.ConsumerProcessor.processFault(Co
>nsum
>erProcessor.java:234) at
> 
>org.apache.servicemix.http.processors.ConsumerProcessor.process(Consume
>rPro
>cessor.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(ContextHandle
>rCol
>lection.java:211) at
> 
>org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.ja
>va:1
>14) 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(Sele
>ctCh
>annelConnector.java:511) at
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:
>442)
>
> Any ideas why this ServiceMix example is not working?
>
> Martin


Reply via email to