0

我在应用程序上下文 xml 中使用了以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ......>


    <context:component-scan base-package="com.webservice" />
    <sws:annotation-driven />

    <sws:static-wsdl id="Signal"
        location="/WEB-INF/wsdl/Signal.wsdl" />

    <bean id="validatingInterceptor"
        class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
        <property name="schema" value="/WEB-INF/Order.xsd" />
        <property name="validateRequest" value="true" />
        <property name="validateResponse" value="true" />
    </bean>
    <bean
        class="org.springframework.ws.soap.server.endpoint.SoapFaultMappingExceptionResolver">
        <property name="defaultFault" value="SERVER" />
        <property name="exceptionMappings">
            <props>
                <prop key="Exception">SERVER,Internal server error</prop>
            </props>
        </property>
    </bean>
</beans>

如果格式错误的请求来自soapUI,它将阻塞请求。但它在本地工作。当我在服务器中部署它时,它不起作用。另一件事,如果我阻止下面提到的代码比例,它仍然可以在本地工作。

<bean id="validatingInterceptor"
        class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
        <property name="schema" value="/WEB-INF/Order.xsd" />
        <property name="validateRequest" value="true" />
        <property name="validateResponse" value="true" />
    </bean>

请注意,我有 3 个 xsd。Order.xsd 指的是另外两个。请告诉我是否需要为此做任何额外的事情。请帮我。

4

1 回答 1

0

作为参考 XSD 使用下面的代码:

<property name="schemas" >
    <array>
            <value>/SubOrder.xsd</value>
            <value>/OrderTypes.xsd</value>
            <value>/Order.xsd</value>
         </array>
</property>

我用过这两个罐子,我的问题已经解决了。

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.8.1</version>
</dependency>

 <dependency>
    <groupId>xalan</groupId>
    <artifactId>xalan</artifactId>
    <version>2.7.1</version>
</dependency>
于 2013-11-14T13:06:37.230 回答