Announcement Announcement Module
Collapse
No announcement yet.
applicationContext-ws cannot reference .xsd file Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • applicationContext-ws cannot reference .xsd file

    Our Spring WS 2.0 app can be "Run On Server" and returns the dynamically generated wsdl as expected -- until I import the applicationContext-ws.xml configuration into the applicationContext. It fails during maven package when it tries to load the applicationContext for the JUnit tests with the error:
    Code:
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'schema' defined in class path resource [META-INF/spring/applicationContext-ws.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: xsd 'class path resource [WEB-INF/qcim.xsd]' does not exit
    Caused by: java.lang.IllegalArgumentException: xsd 'class path resource [WEB-INF/qcim.xsd]' does not exit
    I followed the Spring WS 2.0 airline example for my configuration but I noticed that they don't use @ContextConfiguration("applicationContext.xml") in any of their tests.

    NOTE: the classpath does include src/main/java, src/main/resources and src/main/webapp with no Exclusions.

    src/resources/META-INF/spring/applicationContext-ws.xml
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:sws="http://www.springframework.org/schema/web-services"
           xmlns:p="http://www.springframework.org/schema/p"
           xsi:schemaLocation="http://www.springframework.org/schema/beans 
           	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           	http://www.springframework.org/schema/context 
           	http://www.springframework.org/schema/context/spring-context-3.0.xsd
           	http://www.springframework.org/schema/web-services 
           	http://www.springframework.org/schema/web-services/web-services-2.0.xsd">
    
        <sws:annotation-driven />
    
        <sws:interceptors>
            <bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/>
            <bean class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
                <property name="xsdSchema" ref="schema"/>
                <property name="validateRequest" value="true"/>
                <property name="validateResponse" value="true"/>
            </bean>
        </sws:interceptors>
    
        <context:component-scan base-package="com.qualcomm.xmlns.it.isso.qcim.ws"/>
    
        <bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/>
    
        <bean id="messageReceiver" class="org.springframework.ws.soap.server.SoapMessageDispatcher"/>
        
        <bean id="schema" class="org.springframework.xml.xsd.SimpleXsdSchema" p:xsd="/WEB-INF/qcim.xsd" />
    
    </beans>
    NOTE: qcim.xsd is found in src/webapp/WEB-INF/ and it is successfully used by spring-ws-servlet.xml in order to generate the wsdl using:
    Code:
        <sws:dynamic-wsdl id="qcim" portTypeName="qcimPortType" locationUri="/QcimService/"
                          targetNamespace="http://xmlns.qualcomm.com/it/isso/qcim/definitions/1.0.0">-->
            <sws:xsd location="/WEB-INF/qcim.xsd"/>
        </sws:dynamic-wsdl>
Working...
X