Junaid is correct. Axis does not perform an automatic validation of
incoming messages because it is a very expensive process.

You have two choices: use a handler or intermediary to perform
validation, or write a null exception handler in your code.

Anne

On 7/12/06, Bhatra, Junaid <[EMAIL PROTECTED]> wrote:




Are you using Axis-generated (WSDL2Java) server side classes? The
axis-generated classes do some kind of Schema checking (not sure if nillable
check is done). It does not carry out a complete Schema validation. You can
always write a handler that does Schema validation and plug it in the
request flow. Keep in mind that complete Schema validation is very
performance intensive.



- Junaid



 ________________________________


From: Juan Cervera [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, July 12, 2006 10:21 AM
 To: [email protected]
 Subject: Are there not nillable field checks at deserialization?





Hi all,





We are using Axis 1.2.1 as a WebService provider and we have experienced
issues when interfacing with clients that are not implemented with Axis.





The problem is that when a field is marked as non nillable in the WSDL
(nillable="false") Axis will always check this when working as a client and
will prevent the message being sent if there are nil values in not nillable
fields. But when Axis acts as a the server, this check is not performed and
will take anything coming through. Our issue is that we expected Axis to
verify that non nillable fields where actually present and populated, so we
did not make our own checks for not nillable fields. As Axis seems like not
actually doing these checks we end up with Null exceptions if any of these
fields is not sent or is nil.





Of course this kind of issues only happen when the client does not follow
the WSDL specification properly and these issues are discovered during
integration tests, but failing in our code with a null exception is a lot
harder to debug than if Axis would just return an error telling that such
field is not nillable, which will make our integration tests a lot easier. I
can see advocates for both solutions, having Axis checking or having the
server code doing it (which allows for customised error responses).






The checks I've done for Axis 1.4 and 2.0 indicate that this seems to be
still the case in the latest versions of Axis.  I just wanted to check if
this is the expected behaviour, if there is any parameter in Axis that can
be set to turn on this checks at the deserialization level and what people
are doing to deal with this situation, in case that there is an easier
approach than checking manually that the values are not nil.





Thanks,


Juan


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to