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.