IBM AS4 客户端 (com.ibm.b2b.as4.client) - 如何设置代理主机?
Posted
技术标签:
【中文标题】IBM AS4 客户端 (com.ibm.b2b.as4.client) - 如何设置代理主机?【英文标题】:IBM AS4 client (com.ibm.b2b.as4.client) - how to set proxy host? 【发布时间】:2019-02-06 01:06:52 【问题描述】:我正在尝试运行 ATO AS4/ebXML“参考”应用程序,该应用程序在后台使用 IBM AS4 客户端将消息发布到 ATO。
当我运行它时,我从 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.
【问题讨论】:
【参考方案1】:我已经确定了故障。 IBM AS4 EmbeddedClient 无法打开密钥库 (mainKeyStore.jks),而是继续运行,而不是抛出异常。在下游,这导致 NullPointerException
没有将其链接到原始密钥库问题。
我会谦虚地向这个星球上的每个开发人员建议,体面的错误消息实际上很重要。这绝不是一个孤立的事件。我们可以通过生成清晰、相关的错误消息,让人们立即解决问题,而不是浪费几天或几个月的时间来寻找问题,从而每年为我们的行业节省数十亿美元(也为我们自己节省了很多痛苦)。
【讨论】:
我认为这是一个错误。吃掉真正的异常然后偶然发现一些不存在的资源并不是一个好主意。以上是关于IBM AS4 客户端 (com.ibm.b2b.as4.client) - 如何设置代理主机?的主要内容,如果未能解决你的问题,请参考以下文章
Red Hat Enterprise Linux AS4, C++ OCCI connect Oracle 9i
如何在 IBM Watson Assistant 客户端中实现“客户端”类型的操作?