Thank you Edell I was going crazy trying to track down the problem, Strange that not more people encountered that problem.
On a different note, which IDE are you using, Eclipse? if so, how do you run the Full version of ServiceMix in eclipse? I get errors if I follow the what the Website says, which is to run the Main class in servicemix-core and put all other sub-projects on the classpath. If I then drop my SA's in the hotdeploy directory I get NoClassdefException etc. But I f I drop the same SA in the binary distro then its fine? I had a look at the servicemix.bat file and that launches servicemix using ClassWorlds (I have never used this library before), should I do something similar to launch the full version of ServiceMix in Eclipse. For now I can only do remote debugs, this is a drag as the turn-around time is quite long if you just quickly want to change some code to verify values. Anyways, I am awaiting your fix. Thanx for taking me out of my misery :-) Ivanhoe On Tue, Apr 8, 2008 at 6:15 PM, Edell Nolan <[EMAIL PROTECTED]> wrote: > Hi, > > I have just submitted a patch for a fix in this area and I was getting the > same result as you. > The body of the message that was been sent from the cxfbc:provider was > null. > > > Freeman is in the process of applying my patches for a fix and testcase. I > suggest you wait for these fixes and rebuild or download the next > snapshot. > > The issue is https://issues.apache.org/activemq/browse/SM-1304 if you want > to apply the patches. > > Edell. > > > On 4/8/08, Ivanhoe Abrahams <[EMAIL PROTECTED]> wrote: > > > > Hi Freeman > > > > I figured out the reason why I was getting the strange behaviour, it was > > because I configured a jms consumer as well which had the same > > jmsProviderDestinationName as the provider. > > That said I am still no closer to getting this simple test to work. > > > > I have changed the jms provider attribute back to soap="true", since it > is > > a > > soap message that I am testing. > > I am not getting errors but only an empty Soap envelope/body. > > > > Belowis the eventual response I receive in SoapUI > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > > <soap:Body/> > > </soap:Envelope> > > > > The following is the hard-coded message I send from the test standalone > > ActiveMQ app. > > String soapResponse = > > "<?xml version='1.0' encoding='UTF-8'?>" + > > "\n<soap:Envelope xmlns:soap=\" > > http://schemas.xmlsoap.org/soap/envelope/\<http://schemas.xmlsoap.org/soap/envelope//>">\n" > + > > "<soap:Body>\n" + > > " <GetPersonResponse xmlns=\" > > http://servicemix.apache.org/cxf-jms/types\<http://servicemix.apache.org/cxf-jms/types/>">\n" > + > > " <personId>1</personId>\n" + > > " <ssn>000-000-0000</ssn>\n" + > > " <name>Guillaume</name>\n" + > > " </GetPersonResponse>\n" + > > "</soap:Body>\n" + > > "</soap:Envelope>\n"; > > > > It seems the as the above message comes back into the JmsProvider the > > SoapReader reads the response but strips out the Envelope/body, so by > the > > time the message reaches the CXF JbiOutWsdl1Interceptor, the following > > piece > > of code writes out nothing > > > > if (!useJBIWrapper) { > > SoapVersion soapVersion = message.getVersion(); > > if (element != null) { > > element = (Element) element.getElementsByTagNameNS( > > element.getNamespaceURI(), > > > soapVersion.getBody().getLocalPart()).item(0); > > if (element != null) { > > > > > ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// > > THIS VALUE IS THEN NULL > > > > SO NOTHING GETS WRITTEN IN THE BELOW LINE > > > > StaxUtils.writeElement((Element)element.getFirstChild(), xmlWriter, > > false); > > } > > } > > return; > > } > > > > > > So, still struggling, I just hope someone can point out my mistake. or > > forward me a simple SA to show me how to send a soap message from > > ...External SOAP Client <-> CXF BC <-> JMS BC <-> External JMS > > > > Thank you in advance > > > > Ivanhoe > > > > > > On Tue, Apr 8, 2008 at 2:51 PM, Freeman Fang <[EMAIL PROTECTED]> > > wrote: > > > > > Hi Ivanhnoe, > > > > > > Not sure why only the first invocation failed, if you can dump the > soap > > > message, it would be helpful. > > > About the build issue, yes, 3.3 snapshot need jaxb-api 2.1, so if you > > are > > > using some early version of jdk 16(which is shipped with jaxb-api 20), > > you > > > will see the class conflict problem. Make sure you build snapshot 3.3 > > with > > > jdk 1.5. > > > And I recommand that currently you should try with 3.2.2 snapshot, > which > > > will be release very soon. > > > Best Regards > > > > > > Freeman > > > > > > > > > Ivanhoe Abrahams wrote: > > > > > > > Hi Freeman > > > > > > > > Thank you for your response, I tried this on servicemix 3.2.1 but > the > > > > useJBIWrapper attribute is not available there, so I checked out the > > > > latestversion from svn, which is servicemix 3.3. > > > > I am now receiving a soap message on the SoapUI client but the body > > was > > > > empty. > > > > > > > > The message looked like this > > > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/ > "> > > > > <soap:Body/> > > > > </soap:Envelope> > > > > > > > > After some debugging I found that by the time the message reached > the > > > > CXF > > > > binding component (on the way back from the JMS component)the soap > > > > envelope/body had already been removed (only the XSD defined message > > > > remained), so I changed the soap attribute on the JMS Binding > > component > > > > to > > > > "false".. > > > > > > > > NOW I have really strange behaviour. When I start servicemix and try > > > > out my > > > > sa, the first time it fails with the following message > > > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/ > "> > > > > <soap:Body> > > > > <soap:Fault> > > > > <faultcode>soap:Server</faultcode> > > > > <faultstring>org.apache.xerces.dom.DeferredTextImpl cannot > be > > > > cast > > > > to org.w3c.dom.Element</faultstring> > > > > </soap:Fault> > > > > </soap:Body> > > > > </soap:Envelope> > > > > > > > > BUT thereafter, If I try it a gain, it works just as I expect. The > > above > > > > error only happens on the very first try. > > > > Also on this first try the message that reaches the JMS standalone > > test > > > > app > > > > is different than the other messages that work. > > > > On the first try it contains a soap envelope/body but on subsequent > > > > calls it > > > > only contains only the XSD defined message. > > > > > > > > This is really confusing. > > > > > > > > By the way, I had a couple of problems building servicemix 3.3 > > > > specifically > > > > the JAXB-API which now depends on JAXB-API 2.1 > > > > So, maybe servicemix 3.3 is not stable enough yet????. > > > > I am now downloading the servicemix 3.2.2 binary to see if that > helps. > > > > > > > > So to recap, all I am trying to do is send a soap message from > SoapUI > > > > <-> > > > > ServicemixCXF-BC <-> ServiceMixJMS-BC <-> ActiveMQ Test App > > > > > > > > If you have any other suggestions on what I am doing wrong, please > do > > so > > > > > > > > Thank you in advance > > > > > > > > Ivanhnoe Abrahams > > > > > > > > On Mon, Apr 7, 2008 at 4:44 PM, Freeman Fang <[EMAIL PROTECTED] > > > > > > wrote: > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > I assume you are using servicemix 3.2.2 snapshot, then you can add > > > > > useJBIWrapper="false" to cxf consumer configuration. > > > > > > > > > > Freeman > > > > > > > > > > > > > > > > > > > > Ivanhoe Abrahams wrote: > > > > > > > > > > > > > > > > > > > > > Hello > > > > > > > > > > > > I am trying to set up a simple example whereby I have a CXF > > consumer > > > > > > endpoint which forwards to my JMS provider which calls out to a > > > > > > simple > > > > > > ActiveMQ queue which responds with a hardcoded message > > > > > > I can make the call from SoapUI and can see the message ending > up > > at > > > > > > the > > > > > > external ActiveMQ test-app which responds with the hardcoded > > > > > > message, > > > > > > > > > > > > The problem is that the JMS provider component does not SEEM > wrap > > > > > > the > > > > > > response in a Normalized message, and as a result the CXF > > consumer > > > > > > complains.... > > > > > > and sends back the following fault to the SoapUI. > > > > > > > > > > > > <faultstring>Message wrapper element is '{ > > > > > > http://servicemix.apache.org/cxf-jms/types}GetPersonResponse<http://servicemix.apache.org/cxf-jms/types%7DGetPersonResponse> > < > > http://servicemix.apache.org/cxf-jms/types%7DGetPersonResponse> > > > > > > <http://servicemix.apache.org/cxf-jms/types%7DGetPersonResponse > >' > > > > > > but expected > > > > > > '{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message<http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper%7Dmessage> > < > > http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper%7Dmessage> > > > > > > <http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper%7Dmessage> > > > > > > '</faultstring> > > > > > > > > > > > > Below is my CXF consumer SU xbean.xml and my JMS provider SU > > > > > > xbean.xml > > > > > > > > > > > > CXF XBEAN.XML --> > > > > > > <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" > > > > > > xmlns:test=" > > > > > > http://servicemix.apache.org/cxf-jms"> > > > > > > <cxfbc:consumer wsdl="classpath:test.wsdl" > > > > > > targetService="test:MyPersonService"/> > > > > > > </beans> > > > > > > > > > > > > > > > > > > <jms:endpoint service="test:MyPersonService" > > > > > > endpoint="myProvider" > > > > > > role="provider" > > > > > > destinationStyle="queue" > > > > > > jmsProviderDestinationName="TOOL.DEFAULT" > > > > > > connectionFactory="#connectionFactory" > > > > > > wsdlResource="classpath:test.wsdl" > > > > > > defaultMep="http://www.w3.org/2004/08/wsdl/in-out" > > > > > > soap="true" /> > > > > > > > > > > > > > > > > > > Any help would be appreciated > > > > > > > > > > > > ICA > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
