Клиент IBM AS4 (com.ibm.b2b.as4.client) - как настроить прокси-хост?
Я пытаюсь запустить "эталонное" приложение ATO AS4/ebXML, которое под капотом использует клиент IBM AS4 для отправки сообщений в ATO.
Когда я запускаю его, я получаю NullPointerException
изнутри клиента AS4. Похоже, это связано с тем, что карта HttpDestination имеет ключ HttpProxyHost с нулевым значением.
Учитывая, что это сжатая библиотека, как я могу удалить этот ключ из карты или присвоить ему значение? Если это элемент конфигурации, где он настроен?
Я не работаю через прокси и надеюсь, что клиент 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.
0 ответов
Я определил ошибку. IBM AS4 EmbeddedClient не смог открыть хранилище ключей (mainKeyStore.jks), но вместо генерации исключения он продолжил работу. Ниже по течению это привело кNullPointerException
без ничего, что могло бы связать его с исходной проблемой хранилища ключей.
Я смиренно предлагаю каждому разработчику на этой планете, что достойные сообщения об ошибках действительно имеют значение. Это ни в коем случае не был единичным инцидентом. Мы могли бы экономить нашей отрасли миллиарды долларов каждый год (и нам очень много боли), создавая четкие и актуальные сообщения об ошибках, которые позволили бы людям немедленно решать проблемы, вместо того, чтобы тратить дни или месяцы на их поиск.