JAXWS: If JAXB classes are not packaged with the JAXWS Application, the service 
may fail
----------------------------------------------------------------------------------------

                 Key: AXIS2-4393
                 URL: https://issues.apache.org/jira/browse/AXIS2-4393
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: jaxws
            Reporter: Rich Scheuerle
            Assignee: Rich Scheuerle


Under normal circumstances, a JAX-WS web service application uses JAXB classes 
to represent the method and parameter data    
for document/literal operations.  However, very simple web service applications 
may not contain JAXB classes.              
                                                                
For example, a JAX-WS document/literal method that only has  Java primitive 
parameters might be developed without JAXB classes.                             
                           
                                                                
Another example is a benchmark application.  A benchmark application that is 
developed by other vendors and might not contain JAXB classes                   
                         
                                                                
If JAXB classes are not present, the JAX-WS runtime will perform correctly in 
most cases.                                
                                                                
When the following conditions are met, the JAX-WS runtime will fail with a 
NullPointerException error:                         
   * The JAX-WS web service has a style/use defined as document/literal.        
                                       
   * The JAX-WS web service is defined as or defaults to the wrapped mapping.   
                                             
   * The JAX-WS web service does not contain JAXB classes.      
   * The JAX-WS web service receives a message that indicates that one of the 
parameters to the JAX-WS operation is null or missing.                          
                              
                                                                
The NullPointerException will occur when the JAX-WS runtime     
receives the incoming message.  Here is an example error:       
                                                                
javax.xml.ws.WebServiceException:                               
java.lang.NullPointerException                                  
at                                                              
org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:175)
                                    
at                                                              
org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70)
                                       
at                                                              
org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:128)
                                      
at                                                              
org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMinimalMethodMarshaller.demarshalRequest(DocLitWrappedMinimalMethodMarshaller.java:221)

Solution:

In the scenario described above, the JAX-WS unmarshalling engine uses an 
algorithm called "document literal wrapped minimal" unmarshalling.  
The algorithm currently does not have the ability to recognize missing 
elements/parameters.  
The algorithm will be upgraded to handle this scenario.
In addition, other clases in the JAX-WS runtime were changed to provide the 
necessary information to detect the missing parameters.

This solution has been tested and will be committed shortly.  All of the code 
is in the JAXWS runtime.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to