我用这种方式定义了我的xsd(部分):
<xs:element name="entityNo" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
但是当我用SoapUI发送一个长于20的字符串时,我的Endpoint仍然接收它,好像它是一个有效的输入。 我该如何解决这个问题?
答案 0 :(得分:1)
好的,限制工作,我只需要在spring-ws配置文件中添加PayloadValidatingInterceptor拦截器:
<sws:interceptors>
<bean class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
<property name="schemas">
<list>
<value>/WEB-INF/schemasDef/first.xsd</value>
<value>/WEB-INF/schemasDef/second.xsd</value>
</list>
</property>
<property name="validateRequest" value="true"/>
<property name="validateResponse" value="true"/>
</bean>
</sws:interceptors>