[jbossws-dev] Re: [Fwd: @SchemaValidation case]

David Boeren dboeren at redhat.com
Fri Apr 4 10:06:01 EDT 2008


The question is:

What is the correct way to declare a @SchemaValidation annotation on an 
endpoint in order to have it validate incoming XML against an xsd file 
that is located within the war inside the WEB-INF directory?

Thomas Diesler wrote:
> Hi David,
>
> what is your specific question? If the documentation is not clear, you 
> can easily improve it based on your understanding - I of course can 
> help you to improve your understanding.
>
> cheers
> -thomas
>
> Heiko Braun wrote:
>> Do you want to take a look at this?
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> Subject:
>> @SchemaValidation case
>> From:
>> David Boeren <dboeren at redhat.com>
>> Date:
>> Thu, 03 Apr 2008 08:26:55 -0500
>> To:
>> Heiko Braun <hbraun at redhat.com>
>>
>> To:
>> Heiko Braun <hbraun at redhat.com>
>>
>>
>> I've got a case where the customer is wanting to use 
>> @SchemaValidation to validate their webservice calls, but is getting 
>> errors.
>>
>> https://enterprise.redhat.com/issue-tracker/?module=issues&action=view&tid=172244&gid=1354 
>>
>>
>> Note: You will have to select "All Events" to see the relevant 
>> information.
>>
>> When they set @SchemaValidation(enabled=true) they get this error:
>>
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a 
>> handler executor: []
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] 
>> callRequestHandlerChain: PRE
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] 
>> getHandlerChain: 
>> [type=PRE,info=[service={http://api.prepaid.tsys.com/system/wsdl}system,port={http://api.prepaid.tsys.com/system/wsdl}SystemServiceImplPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http 
>> <http://api.prepaid.tsys.com/system/wsdl%7Dsystem,port=%7Bhttp://api.prepaid.tsys.com/system/wsdl%7DSystemServiceImplPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http>]] 
>>
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a 
>> handler executor: 
>> [org.jboss.wsf.framework.invocation.RecordingServerHandler at 6421c8]
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Enter: 
>> handleIn BoundMessage
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Exit: handleIn 
>> BoundMessage with status: true
>> 2008-04-02 10:46:36,806 DEBUG [org.jboss.ws.core.EndpointInvocation] 
>> getRequestPayload
>> 2008-04-02 10:46:36,806 DEBUG [org.jboss.ws.core.EndpointInvocation] 
>> getRequestParamValue: {http://api.prepaid.tsys.com/system/type}ping 
>> <http://api.prepaid.tsys.com/system/type%7Dping>
>> 2008-04-02 10:46:36,806 INFO 
>> [org.jboss.ws.core.soap.SOAPBodyElementDoc] Validating: XML_VALID
>> 2008-04-02 10:46:36,806 WARN 
>> [org.jboss.ws.extensions.validation.SchemaExtractor] Multiple schema 
>> elements not supported.
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.wsf.framework.DefaultSPIProvider] provide SPI 'class 
>> org.jboss.wsf.spi.management.ServerConfigFactory'
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.wsf.framework.DefaultSPIProvider] class 
>> org.jboss.wsf.spi.management.ServerConfigFactory Implementation: 
>> org.jboss.wsf.framework.management.ServerConfigFactoryImpl at 17b9a1a
>> 2008-04-02 10:46:36,806 ERROR [or2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] 
>> getHandlerChain: 
>> [type=ENDPOINT,info=[service={http://api.prepaid.tsys.com/system/wsdl}system,port={http://api.prepaid.tsys.com/system/wsdl}SystemServiceImplPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http 
>> <http://api.prepaid.tsys.com/system/wsdl%7Dsystem,port=%7Bhttp://api.prepaid.tsys.com/system/wsdl%7DSystemServiceImplPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http>]] 
>>
>> g.jboss.ws.extensions.validation.StrictlyValidErrorHandler] 
>> org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration 
>> of element 'm:ping'.
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.jaxws.handler.MessageContextJAXWS] Begin response 
>> processing
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.soap.MessageContextAssociation] popMessageContext: 
>> org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS at 538db1 
>> (Thread http-127.0.0.1-8080-2)
>> 2008-04-02 10:46:36,806 DEBUG 
>> [org.jboss.ws.core.soap.MessageContextAssociation] 
>> pushMessageContext: 
>> org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS at ee1c42 
>> (Thread http-127.0.0.1-8080-2)
>> 2008-04-02 10:46:36,806 ERROR 
>> [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception
>> org.jboss.ws.WSException: org.xml.sax.SAXException: cvc-elt.1: Cannot 
>> find the declaration of element 'm:ping'.
>>
>>
>> When they add a schemaLocation like this: 
>> @SchemaValidation(schemaLocation="xsd/sample.xsd"), the service fails 
>> to deploy.
>>
>> The documentation on our wiki about @SchemaValidation is nearly 
>> non-existant so I'm assuming that I'm probably not telling him the 
>> right way to use this annotation.  Can you take a quick look and let 
>> me know what the proper annotation should be?  Or, if his error 
>> indicates a different problem source, what should we be looking at?
>>
>> Thanks!
>




More information about the jbossws-dev mailing list