我遇到以下错误:
java.util.concurrent.ExecutionException: javax.xml.ws.soap.SOAPFaultException:Unmarshalling Error:文本大小 限制(134217728)超过
简单地说,通过SOAP Web服务存在最大文本大小限制。 根据{{3}}文档,可以在CXF.xml文件中定义以下属性:
org.apache.cxf.stax.maxTextLength
我的问题是如何做到这一点?文件中的哪个位置应该写出来?
我是Java的新手,谢谢你的帮助
答案 0 :(得分:1)
也许为时已晚......:)
对我来说,这适用于JBoss EAP 6.4:
首先,将文件nammed webservice-conf.xml 创建到 WEB-INF / :
<?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 匹配。
这对我有用