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]
