Hi Nick,

If you guys have some idea fixing this issue with Axis2 side and publish that idea I might able to give some contribution ;-) .

That would be much better solution rather fixing it from Geronimo side as I though it before.
Thanks,
Lasantha Ranaweera

Nicholas L Gallardo wrote:

Dims,

By "the other SOAP engine", I'm assuming that's CXF?

Our usage of JAXB right now is dependent upon root elements. By that, I mean that the wrapper bean that's defined as the root element in the schema. These generated classes carry some additional annotations that allow us to unmarshall them easily with JAXB. I discussed this with Rich and he had some ideas about ways we could possibly get around this. It will have to be a lower severity item though as we're working through some functional scenarios. I've opened a JIRA issue to track this.

https://issues.apache.org/jira/browse/AXIS2-2155

Regards,

Nicholas Gallardo
WebSphere  -  WebServices Development
[EMAIL PROTECTED]
Phone: 512-838-1182
Building: 901 / 5G-016


*"Davanum Srinivas" <[EMAIL PROTECTED]>*

02/09/2007 10:54 AM
Please respond to
[email protected]


        
To
        [email protected]
cc
        
Subject
        Re: JAXWSMessageReciever Marshaller Problem



        





Nick,

The other soap engine inside Geronimo seems to work w/o needing the
wrapper classes. Anything we can do to get ours working too? w/o
having to run the xjc command with "-wsdl"? Is this planned, or out of
scope?

thanks,
dims

On 2/9/07, Nicholas L Gallardo <[EMAIL PROTECTED]> wrote:
>
> Hi Lasantha,
>
> Sorry for the late response here. You have correctly identified the missing piece though. For services that are considered doc/lit wrapped (the default for JAX-WS), it is required that the wrapper beans be generated. You can get these by running the JAXB generation tool with the "-wsdl" flag I believe. The JAX-WS runtime in Axis2 will not generate these on the fly, but needs these classes to be able to marshall/unmarshall the messages.
>
> Beyond that though, you don't need to include the @RequestWrapper or @ResponseWrapper annotations if the generated class names follow the defaults:
>
>      - package name is the same as the SEI
> - class names are OperationName and OperationNameResponse with the appropriate camel casing.
>
> Hope that helps...
>
> Regards,
>
> Nicholas Gallardo
>  WebSphere  -  WebServices Development
>  [EMAIL PROTECTED]
>  Phone: 512-838-1182
>  Building: 901 / 5G-016
>
>
>
>  "Lasantha Ranaweera" <[EMAIL PROTECTED]>
>
> 02/05/2007 09:54 AM
>
>
> Please respond to
>  [email protected]
>
>
> To [email protected]
>
> cc
>
>
> Subject RE: JAXWSMessageReciever Marshaller Problem
>
>
>
>
>
>
>
>
> Hi Nick,
>
>  Thank you very much for the giving some insight.
>
>  Say for example if are having Doc/Lit service with @ResponsWrapper &
> @RequestWrapper annotations, will the Axis2 generate intermediate classes
>  for the JAXB binding automatically? Otherwise do we need to some how
>  generate it & add it in to the archive?
>
>  First we are working on an example which has a WSDL and creating
>  annotations by hand using it's relevant composites.
>
>  Please find the attached WSDL, endpoint & endpoint impl class.
>
>  Any help would be greately appriciated.
>
>  Thanks,
>  Lasantha Ranaweera
>  > Lin,
>  >
> > JAXB objects are not always required. You could be using simple types
>  > that map base Java types like String, int, boolean, etc.  But, in all
> > cases, we will use JAX-WS as a means to marshall/unmarshall data types.
>  >
> > The exception you're seeing usually happens when the JAXBContext that is
>  > used to unmarshall the message is not configured correctly.  The two
> > messages that you see from JAXBUtils could be an indication of the problem > > depending on what pattern your service is following (wrapped vs. bare).
>  > I'm guessing wrapped since it went down into the
>  > DocLitWrappedMethodMarshaller.
>  >
> > Overall, we need one of two things to be able to configure the JAXBContext
>  > correctly and unmarshall the incoming request.
>  >
>  > a) If it's wrapped, then you need to have an @RequestWrapper and
> > @ResponseWrapper annotation on your operation. That can be used by JAXB
>  > to pick-up the wrapper classes that are defined for that operation.
>  >
> > b) If it's not wrapped, then you will need to have an ObjectFactory. The > > ObjectFactory can be used by the JAXBContext under the covers to figure
>  > out how to unmarshall elements that don't have custom types defined.
>  > Without this though, the unmarhaller wont' work.
>  >
> > Can you post an example of the endpoint that you're trying to deploy and > > what annotations it has on it? Is this endpoint being deployed with or
>  > without a WSDL?
>  >
>  > Regards,
>  >
>  > Nicholas Gallardo
>  > WebSphere  -  WebServices Development
>  > [EMAIL PROTECTED]
>  > Phone: 512-838-1182
>  > Building: 901 / 5G-016
>  >
>  >
>  >
>  > "Lin Sun" <[EMAIL PROTECTED]>
>  > 02/04/2007 09:50 PM
>  > Please respond to
>  > [email protected]
>  >
>  >
>  > To
>  > <[email protected]>
>  > cc
>  >
>  > Subject
>  > RE: JAXWSMessageReciever Marshaller Problem
>  >
>  >
>  >
>  >
>  >
>  >
>  > Hi there,
>  >
>  > A basic question, are jaxb objects required in a simple hello jax-ws
> > application? I think I am running the same test as Lasantha and this
>  > test
> > doesn't have any jaxb generated classes in the war file. Axis2 did choose > > to use DocLitWrappedMethodMarshaller to do the marshaller work and the > > following exception was thrown when message.getBodyBlock(0, blockContext,
>  > factory) is called.
>  >
>  > javax.xml.bind.UnmarshalException
>  >  - with linked exception:
>  > [javax.xml.bind.UnmarshalException: unexpected element
> > (uri:"http://apache.org/hello_world_soap_http";, local:"greetMe"). Expected
>  > elements are (none)]
>  >
>  > I also saw
>  >
>  > 21:50:34,781 INFO  [JAXBUtils] ObjectFactory Class Not Found
>  > 21:50:34,828 INFO  [JAXBUtils] package-info Class Not Found
>  >
>  > in my console log, which seems to indicate that axis2 requires the
>  > existence
> > of the ObjectFactory Class and package-info Class (part of jaxb generated
>  > classes) in the test application?
>  >
>  > This same jax-ws test works with CXF integration into Geronimo so I
>  > thought
>  > it would be okay to not have jaxb objects in the application archive.
>  > However, missing it seems to cause the UnmarshalException.
>  >
>  > Any help is appreciated.
>  >
>  > Lin
>  >
>  > -----Original Message-----
>  > From: Lasantha Ranaweera [mailto:[EMAIL PROTECTED]
>  > Sent: Wednesday, January 31, 2007 1:33 AM
>  > To: [email protected]
>  > Subject: Re: JAXWSMessageReciever Marshaller Problem
>  >
>  > Hi Nich,
>  >
>  > Thank you very much for the information. I have uploaded latest patch
>  > (number 2) to the Geronimo list under GERONIMO-2776.
>  >
> > I am basically trying to read a WSDL and create JAXWS service by hand
>  > filling necessary composites for situations where class level
>  > annotations are not provided.
>  >
> > After some debugging sessions understand this is due to the missing JAXB > > objects in my application archive. It would be ideal if you can explain
>  > me how the JAXB bindings work for the JAXWS in the Axis2 side. :-)
>  >
>  > Also is there any publicly available articles to refer JAXWS stuff on
>  > the Axis2?
>  >
>  > Thanks Again,
>  > Lasantha
>  >
>  > Nicholas L Gallardo wrote:
>  >>
>  >> Hi Lasantha,
>  >>
>  >> Sorry for the delayed response here.
>  >>
>  >> I think I need to understand how you're deploying/configuring the
>  >> endpoint before I can provide guidance on what's going on here.  I
> >> know we've already started the Geronimo integration, but I think some
>  >> of that is going to (or should probably) rely on similar work that
>  >> needs to be done in Axis2.  Do you have some information or
>  >> architecture that you can share for how this is being done?
>  >>
> >> As far as this situation, the unmarshalling is going to be predicated
>  >> on what style of WSDL you have.  If you've just annotated a POJO and
> >> then deployed that, the default WSDL mapping is to a Document/Literal > >> Wrapped style WSDL. You can use the SOAPBinding annotation as you've
>  >> already seen to toggle between a Document and RPC style.  Only
> >> "literal" use is supported. JAX-WS does not support RPC/Encoded style
>  >> WSDLs.
>  >>
> >> At a high level what will happen is, after the request comes in to the
>  >> JAXWSMessageReceiver, a decision will be made as to what
>  >> MethodMarshaller needs to be loaded.  This decision is based on the
> >> information in the EndpointDescription/OperationDescription. Each of
>  >> those objects is a view of the WSDL and annotation information
>  >> available for an endpoint/operation.  If those are not configured
>  >> correctly, then you won't have the right MethodMarshaller.
>  >>
>  >> Is the scenario that you have intended to truly be based on an "RPC"
> >> style WSDL (as opposed to a "Document" style)? I'm assuming that the > >> RPC in the RPCMessageReceiver is referring more to the fact that it's
>  >> for services that are based on an interaction that people would
>  >> consider RPC over a messaging style interaction.  Is that correct?
>  >>
>  >> Regards,
>  >>
>  >> Nicholas Gallardo
>  >> WebSphere  -  WebServices Development
>  >> [EMAIL PROTECTED]
>  >> Phone: 512-838-1182
>  >> Building: 901 / 5G-016
>  >>
>  >>
>  >> *"Lasantha Ranaweera" <[EMAIL PROTECTED]>*
>  >>
>  >> 01/26/2007 11:09 PM
>  >> Please respond to
>  >> [email protected]
>  >>
>  >>
>  >>
>  >> To
>  >>                [email protected]
>  >> cc
>  >>                [EMAIL PROTECTED]
>  >> Subject
>  >>                JAXWSMessageReciever Marshaller Problem
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >>
>  >> Hi,
>  >>
>  >> This is a problem arised in the Geronimo Axis2 integration with
>  >> JAXWSMessageReciever.
>  >>
>  >> I created an AxisService with a JAXWSMessageReciever as it's message
>  >> reciever and trying to invoke the service using
> >> HTTPTransportUtils.processHTTPPostRequest() method. We are sending a RPC
>  >> based SOAPRequest to the service invocation.
>  >>
>  >> The JAXWSMessageReciever then creates Marshaller for the unmarshall
>  >> requests. This marshaller creation is entirely depends on the
>  >> EndpointInterfaceDescriptionImpl SOAPBinding style. By default it
>  > creates
> >> a DocLiteralMarashaller and tries to unmarshall my RPC based request and
>  >> get failed with UnmarshallException :(. When I change the default
> >> SOAPBinding style in EndpointInterfaceDescriptionImpl to RPC it works
>  > fine
> >> (sure it's not the way to do it). Is this is the correct behaviour of
>  >> Marshal creation of JAXWSMessageReciever? Shouldn't it be depends on
>  >> SOAPMessage messaging mode too?
>  >>
>  >> BTW I have created a JIRA (AXIS2-2044) patch to remove some of the
> >> misleading information gives in the Axis2 integrating it with Geronimo.
>  >>
>  >> Thanks,
>  >> Lasantha Ranaweera
>  >>
> >> ---------------------------------------------------------------------
>  >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>  >> For additional commands, e-mail: [EMAIL PROTECTED]
>  >>
>  >>
>  >
>  >
>  >
>  > ---------------------------------------------------------------------
>  > To unsubscribe, e-mail: [EMAIL PROTECTED]
>  > For additional commands, e-mail: [EMAIL PROTECTED]
>  >
>  >
>  > ---------------------------------------------------------------------
>  > To unsubscribe, e-mail: [EMAIL PROTECTED]
>  > For additional commands, e-mail: [EMAIL PROTECTED]
>  >
>  >
>  >
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>  --=_alternative 005A88328625727D_=--
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



--
Davanum Srinivas :: http://wso2.org/ :: Oxygen for Web Services Developers

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to