首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >原因: java.io.IOException:长度1279873876超出限制: 26

原因: java.io.IOException:长度1279873876超出限制: 26
EN

Stack Overflow用户
提问于 2018-10-10 22:37:16
回答 1查看 334关注 0票数 1

我正在尝试在log4j中实现套接字附加器,以便将我的日志直接写入主机应用程序。

下面是我的log4j配置,

    <?xml version="1.0" encoding="UTF-8"?>
  <Configuration status="trace" monitorInterval="5">
    <Appenders>
      <Socket name="socket" host="localhost" port="8085" reconnectDelayMillis="30000" protocol="TCP" immediateFlush="true">
        <PatternLayout></PatternLayout>
      </Socket>
      <Async name="SplunkAsync">
        <AppenderRef ref="socket"/>
      </Async>
    </Appenders>
    <Loggers>
      <Root level="warn">
        <AppenderRef ref="SplunkAsync"/>
      </Root>
      <Logger name="org.mule.module.http.internal.HttpMessageLogger" level="debug" additivity="false">
        <AppenderRef ref="SplunkAsync"/>
      </Logger>
  </Loggers>
</Configuration>

我也尝试过从java程序向这个本地主机8085端口发送消息,它工作得非常好。

但是使用log4j附加器,我得到了下面的异常,

原因: java.io.IOException:长度1279873876超出限制: 26

ERROR 2018-10-10 19:55:52,897 [[tcplistner].connector.tcp.mule.default.receiver.02] org.mule.exception.DefaultSystemExceptionStrategy: Caught exception in Exception Strategy: An error occurred while verifying your connection.  You may not be using a consistent protocol on your TCP transport. Please read the documentation for the TCP transport, paying particular attention to the protocol parameter.
java.io.IOException: An error occurred while verifying your connection.  You may not be using a consistent protocol on your TCP transport. Please read the documentation for the TCP transport, paying particular attention to the protocol parameter.
    at org.mule.transport.tcp.protocols.SafeProtocol.helpUser(SafeProtocol.java:110) ~[mule-transport-tcp-3.8.5.jar:3.8.5]
    at org.mule.transport.tcp.protocols.SafeProtocol.assertSiblingSafe(SafeProtocol.java:83) ~[mule-transport-tcp-3.8.5.jar:3.8.5]
    at org.mule.transport.tcp.protocols.SafeProtocol.read(SafeProtocol.java:37) ~[mule-transport-tcp-3.8.5.jar:3.8.5]
    at org.mule.transport.tcp.TcpMessageReceiver$TcpWorker.getNextMessage(TcpMessageReceiver.java:367) ~[mule-transport-tcp-3.8.5.jar:3.8.5]
    at org.mule.transport.AbstractReceiverResourceWorker.doRun(AbstractReceiverResourceWorker.java:41) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.transport.AbstractReceiverWorker.run(AbstractReceiverWorker.java:66) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.transport.TrackingWorkManager$TrackeableWork.run(TrackingWorkManager.java:267) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.work.WorkerContext.run(WorkerContext.java:301) ~[mule-core-3.8.5.jar:3.8.5]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_144]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_144]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
Caused by: java.io.IOException: Length 1279873876 exceeds limit: 26
    at org.mule.transport.tcp.protocols.LengthProtocol.read(LengthProtocol.java:71) ~[mule-transport-tcp-3.8.5.jar:3.8.5]
    at org.mule.transport.tcp.protocols.SafeProtocol.assertSiblingSafe(SafeProtocol.java:79) ~[mule-transport-tcp-3.8.5.jar:3.8.5]
EN

回答 1

Stack Overflow用户

发布于 2018-10-26 08:44:42

查看类名org.mule.module.http.internal.HttpMessageLogger,您会看到一个.internal。包。这是一个强烈的提示,表明您根本不应该使用该包。

发生的情况是,您正在使用内部Mule实现类作为Splunk的Log4j2自定义附加。在任何情况下,这都不是该类的预期用途。

您应该做的是查看Splunk documentation并遵循其中的步骤。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52742725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档