Thanks all, This is what I needed to know.
Juan -----Original Message----- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: 12 July 2006 19:25 To: [email protected] Subject: Re: Are there not nillable field checks at deserialization? 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
