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]


Reply via email to