如何使用CXF.xml更改org.apache.cxf.stax.maxTextLength?(这是一个关于IT技术的提问标题)

5
我遇到了以下错误:

java.util.concurrent.ExecutionException: javax.xml.ws.soap.SOAPFaultException: 反编组错误:文本大小限制(134217728)超过

它简单地说明通过SOAP Web服务存在最大文本大小限制。根据Securing CXF Services文档,可以在CXF.xml文件中定义以下属性:

org.apache.cxf.stax.maxTextLength

我的问题是怎么做?在哪个文件中应该写它?
我是Java的新手,感谢您的帮助。

你使用的是哪个版本的cxf? - BudsNanKis
1个回答

1
也许现在已经太晚了... :)
对我来说,在 JBoss EAP 6.4 上运行的方法是:
首先,在 WEB-INF/ 中创建一个名为 webservice-conf.xml 的文件:
 <?xml version="1.0" encoding="UTF-8"?>
<jaxws-config xmlns="urn:jboss:jbossws-jaxws-config:4.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:javaee="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="urn:jboss:jbossws-jaxws-config:4.0 schema/jbossws-jaxws-config_4_0.xsd">
    <endpoint-config>
        <config-name>Sample</config-name>

        <property>
            <property-name>org.apache.cxf.stax.maxTextLength</property-name>
            <property-value>268435456</property-value>
        </property>


    </endpoint-config>
</jaxws-config>

你可以通过设置org.apache.cxf.stax.maxTextLength属性值来指定最大大小,以字节为单位。
然后,在你的Web服务实现中,添加@EndpointConfig注释:
@WebService
@EndpointConfig(configName = "Sample", configFile = "WEB-INF/webservice-conf.xml") 
public class SampleService implements ISampleService {
}

请注意,注释中的configName值必须与XML文件中的config-name匹配。
它对我有效。

1
能否使用环境变量使其工作? - makozaki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接