IRS ACA 1095C SOAP 故障:断言处理中出错

我在向 IRS ACA 网站提交 1094/1095C 时随机遇到错误。它一直是一个有效的代码,有一段时间我没有对代码进行任何更改,突然我开始在很少的提交中看到这个错误。

代码是java的。我们仍然能够成功完成完整提交,但某些提交会返回 SOAP 错误。

........

 org.apache.cxf.endpoint.Client yclient = (org.apache.cxf.endpoint.Client) factory.create();

            GZIPInInterceptor ininterceptor = new GZIPInInterceptor();

            yclient.getInInterceptors().add(ininterceptor);

            Endpoint eEndpoint = yclient.getEndpoint();

            EndpointInfo einfo = eEndpoint.getEndpointInfo();

            BindingInfo b = einfo.getBinding();

            ProviderFactory pf = ServerProviderFactory.getInstance();

            eEndpoint.put(ProviderFactory.class.getName(), pf);


            yclient.getRequestContext().put("soap.env.ns.map", nsMap);

            yclient.getRequestContext().put("org.apache.cxf.client", Boolean.FALSE);

            Collection<BindingOperationInfo> c = b.getOperations();

            Iterator<BindingOperationInfo> it = c.iterator();

            while (it.hasNext()) {

                BindingOperationInfo bi = it.next();

                QName name = bi.getOperationInfo().getName();


                System.out.println(name.toString());

                GZIPOutInterceptor interceptor = new GZIPOutInterceptor();

                interceptor.setForce(true);

                yclient.getOutInterceptors().add(interceptor);


                Map<String, Object> ycontext = yclient.getRequestContext();

                ycontext.put(MessageContext.HTTP_REQUEST_HEADERS, head);

                Map<Integer, Class<?>> wssConfigActions = new HashMap<Integer, Class<?>>();

                Map<String, Object> serverOutParams = createServerOutParams(wssConfigActions, true);

......


繁花不似锦
浏览 151回答 4
4回答

繁星点点滴滴

通过修改我们的配置,我们能够在 Apache CXF v3.1.4 上使用它;我们添加了AllowChunking =“false”和secureSocketProtocol =“TLSv1.2”。在此更改之前,自 2019 年 10 月开始,对于任何大于 60 KB 左右的传输,我们还收到了“断言处理错误”的响应。以下是我们对 Apache CXF XML 配置所做的更改:&nbsp; <http-conf:conduit name="*.http-conduit">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllowChunking="false"&nbsp; &nbsp; />&nbsp; &nbsp; <http-conf:tlsClientParameters&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; secureSocketProtocol="TLSv1.2"&nbsp; &nbsp; /></http-conf:conduit>

心有法竹

我已经为此工作了一段时间,并消除了邮箱建议的前两件事(TLS 1.2、FIPS 和我这边的网络问题)。我怀疑他们将中间层更改/更新为 Broadcom(以前称为 Layer7 和 CA)。我将通过关闭 http 分块编码来进行测试,因为默认情况下我是打开它的。如果您不确定如何关闭它,您可以使用 http 1.0,因为它仅在 http 1.1 中受支持。我更新为关闭 http 协议上的分块编码(WebSphere 中的策略),并且我能够从发送 35 到 3000 甚至更高。

婷婷同学_

我也遇到过同样的问题,但我们确实找到了一种手动解决这些问题的方法。我想分享一下,以防它可以帮助你弄清楚发生了什么,尽管我认为国税局需要做出改变。有3个问题需要处理。在标头中,有“创建”和“过期”的时间戳,我们必须在其中添加毫秒。上面提到的一些我们必须从传输中删除 Transfer-Encoding: chunked (我们在 Fiddler 中手动完成)。我必须自己对整个消息进行 gzip 压缩。该程序对消息进行了 gzip,但是当我查看代码中的压缩消息和发送的最终消息时,在开头添加了 8 个字符,并且最后的部分内容发生了更改。如果我将主体单独进行 gzip 压缩,然后将其放回 fiddler(删除分块),那么我会得到成功的响应。

噜噜哒

我确实遇到了同样的问题。我在您的代码或 SOAP 信封中没有看到任何问题,因此我唯一的建议是写信给 IRS AIR 邮箱,他们会进行调查。这就是他们目前对我的案件所做的事情。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java