IBM AS4 客户端 (com.ibm.b2b.as4.client) - 如何设置代理主机?

IBM AS4 client (com.ibm.b2b.as4.client) - how to set proxy host?

我正在尝试 运行 ATO AS4/ebXML "reference" 应用程序,它在后台使用 IBM AS4 客户端向 ATO post 发送消息。

当我 运行 它时,我从 AS4 客户端中得到一个 NullPointerException。看来这是由于 HttpDestination 映射有一个 "HttpProxyHost" 键和一个空值。

鉴于这是一个收缩包装的库,我如何才能从映射中删除该键或为其赋值?如果是配置项,是在哪里配置的?

FWIW 我没有运行通过代理,我希望 AS4 客户端可以支持这个。

com.ibm.b2b.as4.client.AS4ClientException: BCKAS4010E
        at com.ibm.b2b.as4.client.internal.RequestImpl.sendBDO(RequestImpl.java:279)
        at com.ibm.b2b.as4.client.internal.RequestImpl.send(RequestImpl.java:226)
        at au.gov.sbr.sdk.embeddedClient.ReferenceClient.main(ReferenceClient.java:375)
Caused by: com.ibm.b2b.apiint.exception.B2BException: java.lang.NullPointerException
        at com.ibm.b2b.comms.as4.core.service.impl.AS4OutboundTargetService.invokeService(AS4OutboundTargetService.java:403)
        at com.ibm.b2b.as4.client.internal.RequestImpl.invokeAS4targetService(RequestImpl.java:311)
        at com.ibm.b2b.as4.client.internal.RequestImpl.sendBDO(RequestImpl.java:246)
        ... 2 more
Caused by: java.lang.NullPointerException
        at java.util.concurrent.ConcurrentHashMap.putVal(Unknown Source)
        at java.util.concurrent.ConcurrentHashMap.putAll(Unknown Source)
        at com.ibm.b2b.comms.common.util.EbMSContext.setAllProperties(EbMSContext.java:153)
        at com.ibm.b2b.as4.client.internal.AS4ConfigLookupUnitImpl.doHTTPDestinationLookup(AS4ConfigLookupUnitImpl.java:340)
        at com.ibm.b2b.comms.as4.core.service.impl.AS4OutboundTargetService.getAptDestination(AS4OutboundTargetService.java:1393)
        at com.ibm.b2b.comms.as4.core.service.impl.AS4OutboundTargetService.initEbMSContext(AS4OutboundTargetService.java:1184)
        at com.ibm.b2b.comms.as4.core.service.impl.AS4OutboundTargetService.invokeService(AS4OutboundTargetService.java:292)
        ... 4 more
Feb 06, 2019 10:37:22 AM au.gov.sbr.sdk.embeddedClient.ReferenceClient main
SEVERE: Message Send Failed.

我已经找到问题所在。 IBM AS4 EmbeddedClient 无法打开密钥库 (mainKeyStore.jks),但它没有抛出异常而是继续。下游这导致 NullPointerException 与 link 没有任何关系到原始密钥库问题。

我谦虚地向这个星球上的每一位开发人员建议,体面的错误消息实际上很重要。这绝不是一个孤立的事件。通过生成清晰、相关的错误消息,让人们立即解决问题,而不是浪费数天或数月的时间来寻找问题,我们每年可以为我们的行业节省数十亿美元(以及我们自己的很多痛苦)。