• Post Reply Bookmark Topic Watch Topic
  • New Topic

JAXB vc JAX-RPC mapping files  RSS feed

 
S Kapoor
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am a bit confused about when to use JAXB vs when to use the mapping files for JAX-RPC.
The blueprints book refers to the mapping files only in context of a J2EE client and refers to JAXB in the context of parsing xml.
What is the difference??
Thanks in advance.
[ March 31, 2006: Message edited by: S Kapoor ]
 
Peer Reynders
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
JAX-RPC Mapping files help the WSDL2Java conversion map the XML fragments within the SOAP message payload to some custom classes (btw. Axis doesn't support mapping files). This would usually be used with a RPC-style web service.

JAXB would be used in a document-based Web service. In this case the generated endpoint code does not convert the incoming SOAP payload to Java objects. Based on what the service finds in the XML document it may decide to convert the entire document or part of it to Java objects using JAXB.

It seems that JWSDP 2.0 is relying heavily on JAXB for some of its internal processing (i.e. the XML2Java and Java2XML conversions).

In Core J2EE Patterns, 2nd Edition one strategy (Java Binder Strategy p.560) uses Servlets & JAXB to implement a (non-SOAP) Web Service Broker.
 
S Kapoor
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the reply.

However since wsdl types could be imported from an external schema, couldnt JAXB be used in case of rpc-type services also?

When you said 'generated endpoint code' do you mean the client code?
 
Peer Reynders
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by S Kapoor:
However since wsdl types could be imported from an external schema, couldnt JAXB be used in case of rpc-type services also?
When you said 'generated endpoint code' do you mean the client code?

Java2WSDL and WSDL2Java style tools are capable of generating both client stubs and server endpoint skeletons. With RPC-style modes the Java data-types are usually already mapped to and from XML in that generated code, unless the XML is passed as a string or javax.xml.soap.SOAPElement. Internally in JWSDP 2.0 this mapping is apparently done with JAXB. However generally there is little reason with an RPC-style Web service to use JAXB.
For a document-style Web service the XML document still has to be mapped after (or before) the generated code is done with it - that's where JAXB can be used in Web services.
4.5.2 Use the Most Appropriate API
3.7 Handling XML Documents in a Web Service
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!