Never mind - just found EndpointReferenceUtils.getSchema()... Thanks,
Lee > -----Original Message----- > From: Lee Breisacher [mailto:[EMAIL PROTECTED] > Sent: Friday, September 12, 2008 10:23 AM > To: Daniel Kulp; [email protected] > Subject: RE: WebServiceProvider + schema validation > > Thanks Daniel. I had sortof concluded the same thing after > studying the code for several hours. Another question: For > starters, rather than trying to modify > DispatchInDatabindingInterceptor and others, I thought I > would try to write my own "standalone" Interceptor that just > does the schema validation (e.g. > SchemaValidationInterceptor). I'm pretty sure I can use the > JAXP Validator framework to do the validation, but it > requires instances of javax.xml.validation.Schema whereas CXF > seems to use org.apache.ws.commons.schema.XmlSchema > everywhere (e.g. SchemaUtil). Do you (or anyone) know of an > easy way to get/convert javax.xml.validation.Schema from > org.apache.ws.commons.schema.XmlSchema? > > Thanks, > > Lee > > > -----Original Message----- > > From: Daniel Kulp [mailto:[EMAIL PROTECTED] > > Sent: Friday, September 12, 2008 9:51 AM > > To: [email protected] > > Cc: Lee Breisacher > > Subject: Re: WebServiceProvider + schema validation > > > > On Thursday 11 September 2008 8:23:17 pm Lee Breisacher wrote: > > > > then the publish fails because it ends up in > > buildServiceFromWSDL(). > > > > > > I misunderstood this error. Now I've fixed that, but still no > > > validation is taking place. > > > > > > So, this is really quite a simple question: How can I turn on > > > server-side schema validation when the implementation is a > > WebServiceProvider? > > > > Hmmmm..... I'm not sure there is a way right now. Currently, the > > schema-validation-enabled thing is passed into the > databinding so the > > databinding can setup the necessary stuff to do the > > validation. With the > > provider stuff, there isn't a databinding so it's not doing > anything. > > > > Definitely log a bug. If you want to dig into it, most likely, the > > DispatchInDatabindingInterceptor would need to be updated > to validate > > the XML > > stuff after parsing it. The setSchemaInMessage method in > > the superclass can > > be used as an example of how to get the Schema object. From > > there, for the > > SOAPMessage case, use it directly after parsing. For the > > XMLMessage case, > > probably set it into the XMLStreamDataReader and update the > > XMLStreamDataReader to domparse + validate if schema-validate is > > enabled. > > > > Dan > > > > > > > > > > > > > > Thanks, > > > > > > Lee > > > > > > > -----Original Message----- > > > > From: Lee Breisacher [mailto:[EMAIL PROTECTED] > > > > Sent: Thursday, September 11, 2008 1:29 AM > > > > To: [email protected] > > > > Subject: WebServiceProvider + schema validation > > > > > > > > I have a wsdl with various operations. I'm implementing using a > > > > single WebServiceProvider class. That's all working fine. > > > > However, I want to enable schema validation, so > incoming requests > > > > are validated against the wsdl. If I try the obvious, like this: > > > > > > > > EndpointImpl ep = (EndpointImpl)Endpoint.create(new > > > > MyWebServiceProvider()); > > > > ep.setWsdlLocation("test.wsdl"); > > > > ep.publish(address); > > > > > ep.getService().put("schema-validation-enabled", "true"); > > > > > > > > then the publish fails because it ends up in > > buildServiceFromWSDL(). > > > > If I try it this way: > > > > > > > > EndpointImpl ep = (EndpointImpl)Endpoint.create(new > > > > MyWebServiceProvider()); > > > > ep.publish(address); > > > > ep.setWsdlLocation("test.wsdl"); > > > > > ep.getService().put("schema-validation-enabled", "true"); > > > > > > > > then the schema validation doesn't happen. I assume this > > is because > > > > setWsdlLocation doesn't really do anything useful > > > > *after* the endpoint is already published. > > > > > > > > So, I'm thinking there must be a way to associate the > wsdl (or at > > > > least its schema) with the endpoint, but not try to build the > > > > endpoint from the wsdl. Any suggestions? > > > > > > > > Thanks, > > > > > > > > Lee > > > > > > > > -- > > Daniel Kulp > > [EMAIL PROTECTED] > > http://www.dankulp.com/blog > > >
