camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From atg roxx <atgr...@gmail.com>
Subject Re: Camel Jaxb- Not able to unmarshall a xml
Date Mon, 16 Apr 2012 17:33:04 GMT
Hi Chirstian,

After making all the changes suggested by you. Everything is working fine.

But I have some issue here. I have to go and add namespace at each and
every  variable of the generated classes.

This is big pain. Also if the wsdl get changed then then this process of
adding name space at each and every  element has to be repeated again.

Is there any work around for this.

-cheers,
atg roxx



On Mon, Apr 16, 2012 at 5:56 PM, atg roxx <atgroxx@gmail.com> wrote:

> Hi Christian,
>
> I got the solution for the previous question asked by me :
>
> You have to simply add the following in the package-info.java
>
> @javax.xml.bind.annotation.XmlSchema(namespace = "
> http://www.camel.apache.org/jaxb/example/order/1" ,
>
> xmlns = {
> @XmlNs(namespaceURI = " http://www.camel.apache.org/jaxb/example/order/1 ",
> prefix = "ns1"),
> @XmlNs(namespaceURI =  http://www.camel.apache.org/jaxb/example/address/1 ",
> prefix = "ns2")
> },
> elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
> }
>
>
>
> -cheers,
> atg roxx
>
> On Mon, Apr 16, 2012 at 4:32 PM, atg roxx <atgroxx@gmail.com> wrote:
>
>> Hi Christian,
>>
>> Thansk for the link.
>>
>> I run the test case given by you. It works fine but
>>
>> while marshalling  I can see the below xml and if you notice we dont have
>> namespace for <order> or <id> element.
>>
>>
>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>> <order xmlns="http://www.camel.apache.org/jaxb/example/order/1"
>> xmlns:ns2="http://www.camel.apache.org/jaxb/example/address/1">
>>     <id>1</id>
>>     <ns2:address>
>>         <ns2:street>Main Street</ns2:street>
>>         <ns2:streetNumber>3a</ns2:streetNumber>
>>         <ns2:zip>65843</ns2:zip>
>>         <ns2:city>Sulzbach</ns2:city>
>>     </ns2:address>
>> </order>
>>
>> -cheers,
>> atg roxx
>>
>> On Mon, Apr 16, 2012 at 4:02 PM, Christian Müller <
>> christian.mueller@gmail.com> wrote:
>>
>>> It's in SVN:
>>>
>>> https://svn.apache.org/repos/asf/camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/example/
>>>
>>> Best,
>>> Christian
>>>
>>> On Mon, Apr 16, 2012 at 11:41 AM, atg roxx <atgroxx@gmail.com> wrote:
>>>
>>> > Hi Christian,
>>> >
>>> > Could you please provide the code for the Order and Address class.
>>> >
>>> >
>>> > -Regards,
>>> > atg roxx
>>> >
>>> > On Sun, Apr 15, 2012 at 12:37 PM, Christian Müller <
>>> > christian.mueller@gmail.com> wrote:
>>> >
>>> > > The interesting part is how do you define the
>>> > > "jaxbGetProductPriceOffersRequest"?
>>> > > However, I added a unit test to make sure it works and to show how
>>> [1]. I
>>> > > hope with this example you are able to solve your issue.
>>> > >
>>> > > [1]
>>> > >
>>> > >
>>> >
>>> https://svn.apache.org/repos/asf/camel/trunk/components/camel-jaxb/src/test/java/org/apache/camel/converter/jaxb/JaxbDataFormatMultipleNamespacesTest.java
>>> > >
>>> > > Best,
>>> > > Christian
>>> > >
>>> > > On Fri, Apr 13, 2012 at 5:11 PM, atg roxx <atgroxx@gmail.com>
wrote:
>>> > >
>>> > > > Hi Arnaud,
>>> > > >
>>> > > > Yes we have different namespace   for GetProductPriceOffers and
>>> > > > partner/request element also the classes corresponding to them
have
>>> > their
>>> > > > respective namespace.
>>> > > >
>>> > > > Still I am not able unmarshall.
>>> > > >
>>> > > > My Camel Version is 2.8.2
>>> > > > I am doing marshalling and unmarshalling in the following way:
>>> > > > from(Constants.ROUTE_GETPRODUCTPRICEOFFERS)
>>> > > > .to(Constants.LOG_IN_INFO_WITH_HEADERS)
>>> > > > .convertBodyTo(String.class)
>>> > > > .unmarshal(jaxbGetProductPriceOffersRequest)
>>> > > >                        .to(Constants.LOG_IN_INFO_WITH_HEADERS)
>>> > > > .marshal(jaxbGetProductPriceOffersRequest)
>>> > > > .log("after marshalling")
>>> > > > .to(Constants.LOG_IN_INFO_WITH_HEADERS)
>>> > > >  .process(new MondialRequestProcessor(userId, password))
>>> > > >  .log("Finished processing
>>> > > >
>>> "+MondialConstants.GETPRODUCTPRICEOFFERS+Constants.LOG_CORRELATIONID);
>>> > > >
>>> > > >
>>> > > > --cheers,
>>> > > > atg roxx
>>> > > > On Fri, Apr 13, 2012 at 12:20 PM, DEPREZ Arnaud AWL-IT <
>>> > > > arnaud.deprez@atos.net> wrote:
>>> > > >
>>> > > > > Maybe it's a problem of namespaces.
>>> > > > >
>>> > > > > Can you tell me if you use different namespaces for
>>> > > GetProductPriceOffers
>>> > > > > and partner/request element ?
>>> > > > > If they are different, it must be specified in your JAXB
java
>>> class
>>> > > > model.
>>> > > > >
>>> > > > > KR,
>>> > > > >
>>> > > > > Arnaud Deprez
>>> > > > >
>>> > > > >
>>> > > > > -----Original Message-----
>>> > > > > From: Christian Müller [mailto:christian.mueller@gmail.com]
>>> > > > > Sent: vendredi 13 avril 2012 12:58
>>> > > > > To: users@camel.apache.org
>>> > > > > Subject: Re: Camel Jaxb- Not able to unmarshall a xml
>>> > > > >
>>> > > > > Which version of Camel do you use?
>>> > > > > How do you use the JAXB Marschaller/Unmarschaller (explicitly
or
>>> via
>>> > > the
>>> > > > > FallbackTypeConverter)?
>>> > > > > Could you share your code?
>>> > > > >
>>> > > > > Best,
>>> > > > > Christian
>>> > > > >
>>> > > > > Sent from a mobile device
>>> > > > > Am 13.04.2012 12:45 schrieb "atg roxx" <atgroxx@gmail.com>:
>>> > > > >
>>> > > > > > Hi Guys,
>>> > > > > >
>>> > > > > > I am facing a problem.
>>> > > > > >
>>> > > > > > I am using camel jaxb to marshall and unmarshall java
objects
>>> which
>>> > > is
>>> > > > > > working fine for me till now.
>>> > > > > > But now I got a special case where I am not able to
properly
>>> > > unmarshall
>>> > > > > an
>>> > > > > > xml whose class have mulitple namespace (different for
root
>>> element
>>> > > and
>>> > > > > sub
>>> > > > > > elements).
>>> > > > > >
>>> > > > > > sample xml :
>>> > > > > >
>>> > > > > > Class corresponding to each <element> is having
different
>>> > namespace.
>>> > > > > >
>>> > > > > > I am using JaxbDataFormat for this unmarshalling and
setting
>>> the
>>> > > > > partclass
>>> > > > > > name to the root element.
>>> > > > > >
>>> > > > > > <GetProductPriceOffers>
>>> > > > > >  <partner>
>>> > > > > >            <Password>abc</Password>
>>> > > > > >            <UserID>xyz</UserID>
>>> > > > > >         </partner>
>>> > > > > >
>>> > > > > > <request>
>>> > > > > >  <HotelDetails>
>>> > > > > > <HotelAddress>
>>> > > > > > <City />
>>> > > > > > <Country>GB</Country>
>>> > > > > > <PostalCode />
>>> > > > > > <Region>GB</Region>
>>> > > > > > </HotelAddress>
>>> > > > > > <HotelChain>Sample Hotel Chain</HotelChain>
>>> > > > > > <HotelCheckinDate>2011-08-19T04:55:02-04:00</HotelCheckinDate>
>>> > > > > >
>>> <HotelCheckoutDate>2011-08-24T04:55:02-04:00</HotelCheckoutDate>
>>> > > > > > <HotelName>Mariott</HotelName>
>>> > > > > > <HotelRating>5</HotelRating>
>>> > > > > > <NumberOfAdultTravelers>1</NumberOfAdultTravelers>
>>> > > > > > <NumberOfInfantTravelers>0</NumberOfInfantTravelers>
>>> > > > > > <NumberOfKidTravelers>0</NumberOfKidTravelers>
>>> > > > > > <NumberOfRooms>1</NumberOfRooms>
>>> > > > > > <NumberOfSeniorTravelers>0</NumberOfSeniorTravelers>
>>> > > > > > <NumberOfYouthTravelers>2</NumberOfYouthTravelers>
>>> > > > > > </HotelDetails>
>>> > > > > >  </request>
>>> > > > > > </GetProductPriceOffers>
>>> > > > > >
>>> > > > > >
>>> > > > > >
>>> > > > > > I am able to unmarshall it but when i check the object
>>> created, I
>>> > > found
>>> > > > > > that the <request> and <partner> object
are not set to values
>>> in
>>> > the
>>> > > > xml
>>> > > > > > but are set to null.
>>> > > > > >
>>> > > > > >
>>> > > > > > Could anyone let me know what can be the issue or how
to
>>> resolve
>>> > > this .
>>> > > > > >
>>> > > > > >
>>> > > > > > --cheers,
>>> > > > > > atg roxx
>>> > > > > >
>>> > > > >
>>> > > > >
>>> > > > > Atos Worldline SA/NV - Chaussee de Haecht 1442 Haachtsesteenweg
>>> > > > > - 1130 Brussels - Belgium
>>> > > > > RPM-RPR Bruxelles-Brussel - TVA-BTW BE 0418.547.872
>>> > > > > Bankrekening-Compte Bancaire-Bank Account 310-0269424-44
>>> > > > > BIC BBRUBEBB - IBAN BE55 3100 2694 2444
>>> > > > >
>>> > > > > "The information contained in this e-mail and any attachment
>>> thereto
>>> > is
>>> > > > > confidential and may contain information which is protected
by
>>> > > > intellectual
>>> > > > > property rights.
>>> > > > > This information is intended for the exclusive use of the
>>> > recipient(s)
>>> > > > > named above.
>>> > > > > This e-mail does not constitute any binding relationship
or offer
>>> > > toward
>>> > > > > any of the addressees.
>>> > > > > If you are not one of the addressees , one of their employees
or
>>> a
>>> > > proxy
>>> > > > > holder entitled to hand over this message to the addressee(s),
>>> any
>>> > use
>>> > > of
>>> > > > > the information contained herein (e.g. reproduction, divulgation,
>>> > > > > communication or distribution,...) is prohibited.
>>> > > > > If you have received this message in error, please notify
the
>>> sender
>>> > > and
>>> > > > > destroy it immediately after.
>>> > > > > The integrity and security of this message cannot be guaranteed
>>> and
>>> > it
>>> > > > may
>>> > > > > be subject to data corruption, interception and unauthorized
>>> > amendment,
>>> > > > for
>>> > > > > which we accept no liability."
>>> > > > >
>>> > > > >
>>> > > >
>>> > >
>>> >
>>>
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message