当前位置: 首页 > 知识库问答 >
问题:

Apache Camel CXF-错误非法字符((CTRL-CHAR,代码31)

欧盛
2023-03-14

我写了一个camel route,它基本上是一个https web服务的代理。以下是我的路线

请注意,https 服务以 gzip 编码响应!

<camel:sslContextParameters id="sslContext">
    <camel:trustManagers>
        <camel:keyStore resource="certificates/cert.jks" type="jks"
                        password="test"/>
    </camel:trustManagers>
</camel:sslContextParameters>
<cxf:cxfEndpoint id="source"
                 wsdlURL="wsdl/SampleService.wsdl"
                 serviceClass="com.sample"
                 address="http://localhost:9000/SampleService">
    <cxf:properties>
        <entry key="dataFormat" value="PAYLOAD"/>
    </cxf:properties>
</cxf:cxfEndpoint>
<cxf:cxfEndpoint id="target"
                 wsdlURL="wsdl/target.wsdl"
                 serviceClass="com.sample1"
                 address="https://endpoint">
    <cxf:properties>
        <entry key="dataFormat" value="PAYLOAD"/>
    </cxf:properties>
    <cxf:features>
        <bean class="org.apache.cxf.transport.common.gzip.GZIPFeature"/>
    </cxf:features>
    <cxf:inInterceptors>
        <bean class="org.apache.cxf.transport.common.gzip.GZIPInInterceptor"/>
    </cxf:inInterceptors>

</cxf:cxfEndpoint>

<bean id="headerProcessor" class="com.sample.HeaderProcessor"/>

<bean id="defaultHostnameVerifier" class="com.sample.customHostNameVerifier"/>
<camel:camelContext xmlns="http://camel.apache.org/schema/spring" id="vediContext" streamCache="true">
    <onException>
        <exception>org.apache.cxf.binding.soap.SoapFault</exception>
        <redeliveryPolicy maximumRedeliveries="0" redeliveryDelay="2000"/>
    </onException>
    <camel:route>
        <camel:from uri="cxf:bean:source"/>
        <camel:to uri="cxf:bean:target?sslContextParameters=#sslContext&amp;hostnameVerifier=#defaultHostnameVerifier">
        </camel:to>

    </camel:route>
</camel:camelContext>

使用此路由,当我通过 SOAP UI 调用终结点时,第一次调用始终成功,我得到有效的响应。

对于此后的任何调用,我总是得到以下异常:

<soap:Fault>
         <faultcode xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">ns0:Client</faultcode>
         <faultstring>Couldn't create SOAP message due to exception: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character ((CTRL-CHAR, code 31))
 at [row,col {unknown-source}]: [1,1]</faultstring>
      </soap:Fault>

共有1个答案

郑琦
2023-03-14

这个问题是由于有效载荷大小相当大而引起的。在使用ApacheCamel时,提出了另一个问题,以寻求有关使用大型SOAP负载的帮助。

 类似资料:
  • 原因是因为包含在JSON字符串中。 有什么办法可以代替这个或者其他的解决方案吗?

  • 问题内容: 我在面向对象的编程类中为小行星游戏创建了一个小行星字段,但收到非法字符错误:“ \ u200b”。该问题似乎在第12行上发生。(import java.awt.Point;与公共类Asteroid之间的行扩展了PolyBlob) 问题答案: 是Unicode中的“零宽度空间”。 您应该删除第12行(空白行),保存文件,重新添加空白行并再次保存。使用简单的文本编辑器。 如果不能解决问题,

  • 问题内容: 我正在尝试执行JSONObject请求: 我无法编译项目,因为我收到了参数的语法错误: 错误:(144,9)错误:非法字符:’\ u2028’ 我该如何解决? 问题答案: 好吧,只是删除所有字符并再次重写它们会有所帮助。很疯狂..

  • 转码 Stylus可以字符转码。这可以让字符变成标识符,或是渲染成字面量。 例如: body padding 1 \+ 2 编译成: body { padding: 1 + 2; } 注意Stylus中/当作为属性使用的时候需要用括号括起来: body font 14px/1.4 font (14px/1.4) 生成: body { font: 14px/1.4; font

  • 字符编码是一种将字节转换为字符的方法。 要验证或显示HTML文档,程序必须选择字符编码。 HTML 5作者有三种设置字符编码的方法 - HTTP Content-Type标头 如果您正在编写cgi或类似的程序,那么您将使用HTTP Content-Type标头来设置任何字符编码。 以下是一个简单的例子 - print "Content-Type: text/html; charset=utf-8\

  • 嘿,我遇到了一个关于与jackson反序列化的问题,这里是我尝试过的和我得到的错误。 错误:com。fasterxml。杰克逊。果心JsonParseException:意外字符('}'(代码125)):应以双引号开始字段名 Java代码 我的JSON