我正在尝试使用Java ICAP Codec 1.0.0.GA与Squid的Squid Echo示例并获得以下异常
ch.mimo.netty.handler.codec.icap.IcapDecodingError: Mandatory ICAP message header [Encapsulated] is missing
at ch.mimo.netty.handler.codec.icap.ReadIcapHeaderState.validateMandatoryMessageHeaders(ReadIcapHeaderState.java:104)
at ch.mimo.netty.handler.codec.icap.ReadIcapHeaderState.execute(ReadIcapHeaderState.java:54)
at ch.mimo.netty.handler.codec.icap.IcapMessageDecoder.decode(IcapMessageDecoder.java:97)
at ch.mimo.netty.handler.codec.icap.IcapMessageDecoder.decode(IcapMessageDecoder.java:37)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:470)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:443)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
这是我的Squid配置(与ICAP相关):
icap_enable on
icap_service service_req reqmod_precache icap://127.0.0.1:1344
adaptation_access service_req allow all
有什么问题?
答案 0 :(得分:1)
众所周知,Squid的ICAP客户端不会向选项请求添加Encapsulated Header。 Java ICAP Codec的最新1.0.0.GA版本将处理选项,并且100个继续请求将丢失Encapsulated头。
我建议您使用Wireshark转储网络流量并将其发布到此处。