Announcement Announcement Module
Collapse
No announcement yet.
Saxon / Xalan problems with Soap Web Service Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Saxon / Xalan problems with Soap Web Service

    Hi,

    I am trying to add a SOAP Web Service to an existing Web Application and am having a great deal of trouble since my WebApp already uses Saxon and my SOAP Web Service wants to use the Xalan built into the JRE. When trying to get this working I encounter the error:

    Code:
    java.lang.IllegalArgumentException: Unknown type of result: class javax.xml.transform.dom.DOMResult
    at net.sf.saxon.event.SerializerFactory.getReceiver(SerializerFactory.java:154)
    at net.sf.saxon.IdentityTransformer.transform(IdentityTransformer.java:24)
    at org.springframework.xml.transform.TransformerHelper.transform(TransformerHelper.java:138)
    at org.springframework.xml.transform.TransformerObjectSupport.transform(TransformerObjectSupport.java:96)
    at org.springframework.ws.wsdl.wsdl11.provider.InliningXsdSchemaTypesProvider.getSchemaElement(InliningXsdSchemaTypesProvider.java:113)
    at org.springframework.ws.wsdl.wsdl11.provider.InliningXsdSchemaTypesProvider.addTypes(InliningXsdSchemaTypesProvider.java:101)
    at org.springframework.ws.wsdl.wsdl11.ProviderBasedWsdl4jDefinition.afterPropertiesSet(ProviderBasedWsdl4jDefinition.java:233)
    at org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition.afterPropertiesSet(DefaultWsdl11Definition.java:182)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1479)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1419)
    I prototyped my SOAP web service as a standalone Web App and it worked fine. When trying to integrate it I encounter the problem. The transformer object I am being supplied with is a net.sf.saxon.IdentityTransformer when in my working prototype its of class: com.sun.org.apache.xalan.internal.xsltc.trax.Trans formerImpl. Since Saxon is a required dependency elsewhere in the application, removing it is not feasible, so is it possible to make the org.springframework.ws.wsdl support use Saxon? If so, how do I do this?

    I have tried to create my own versions of WsdlDefinitionHandlerAdapter and MessageDispatcherServlet using code cut-and-pasted from the respective classes. I had limited success with this approach and am loathe to go further with it since it feels like a horrible hack.

    Can anyone offer any advice as to how I can get my SOAP web service working? Even an explanation on how to force springframeworks wsdl to use Saxon would be a step forward.

    Thanks,
    Phil
Working...
X