java - 如何更改 Spring-WS 2.4.4 或更高版本中 maxOccurs 的默认限制?

标签 java spring spring-boot xsd spring-ws

将 Spring Boot 1.5.18 更新到更高版本后,出现以下错误:

不支持:http://javax.xml.XMLConstants/property/accessExternalDTD

经过一番调查,我发现这个问题是从 Spring-XML 2.4.4 开始的。

我在 https://access.redhat.com/solutions/1410603 的帮助下解决了这个问题,但之后我收到以下错误:

org.springframework.xml.validation.XmlValidationException:无法创建架构:解析器的当前配置不允许将 maxOccurs 属性值设置为大于值 5.000

如何在使用 Spring-XML 版本 2.4.4 或更高版本的 XSD 中更改解析器以接受高于 5000 的 maxOccurs 值?

我尝试使用 System.setProperty("jdk.xml.maxOccurLimit", "XXXXX") 并尝试设置属性或属性,如https://docs.oracle.com/javase/tutorial/jaxp/limits/using.html

这是产生异常的 bean:

@Bean
public PayloadValidatingEndpointInterceptor payloadValidatingEndpointInterceptor() {
    PayloadValidatingEndpointInterceptor payloadValidatingEndpointInterceptor = new PayloadValidatingEndpointInterceptor();
    payloadValidatingEndpointInterceptor.setValidateRequest(true);
    payloadValidatingEndpointInterceptor.setValidateResponse(true);
    payloadValidatingEndpointInterceptor.setXsdSchema(schema());
    return payloadValidatingEndpointInterceptor;
}

最佳答案

我尝试将系统属性设置在错误的位置。因为我们使用的是 JBoss,所以我必须将 name="jdk.xml.maxOccurLimit"的 JbossSystemPropertySpec 添加到 pom 中 xldeploy-maven-plugin 的配置中。

关于java - 如何更改 Spring-WS 2.4.4 或更高版本中 maxOccurs 的默认限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56480313/

相关文章:

java - 测试具有依赖项的 Spring Boot Controller ? (j单位)

java - 我想更改单击的任何按钮的大小

java - 两个已知地理坐标之间沿线的多个点?

java - 从服务类中调用时,Spring @Transactional 不适用于带注释的方法

java - 我如何知道哪个 Maven 依赖项负责将 jar 包含在我的 WAR 文件中?

spring - grails 3 约束异常

java - 为什么 Android 中不缓存 JSON 异常?

java.lang.NoSuchMethodError : net. sf.ehcache.config.CacheConfiguration.isTerracottaClustered() 错误

java - 使用 springfox-swagger2 版本 3.0.0-SNAPSHOT 观察错误 "Unable to infer base url"

java - 外部 Jar 内的依赖注入(inject)