lunes, septiembre 12, 2011

HttpAdapterException: CANNOT_FIND_BINDING

Recientemente me topé con un error de un adaptador HTTP Java asíncrono que decía que no se podía encontrar la entrada correspondiente para los valores P/S/A dados:

com.sap.aii.adapter.http.api.HttpAdapterException: CANNOT_FIND_BINDING,Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;...


Tras muchas pruebas y refrescos de caches (como recomiendan algunos foros del SDN) comprobé que el error estaba en que en la URI de llamada estaba incluyendo los parámetros que no tenían valor y ésto ocasionaba dicho error.

Según la ayuda de SAP, la URI de acceso al servicio HTTP para el adaptador JAVA (versión PI 7.3), es la siguiente:
  • http://<hostname:port>/<path>?<query-string>
Donde:
  • path = /HttpAdapter/HttpMessageServlet
  • query-string = ?interfaceNamespace=<interfaceNamespace>&interface=<interface>&senderService=<senderService>&senderParty=<senderParty>&receiverParty=<receiverParty>&receiverService=<receiverService>&qos=<qos>&queueid=<queueid>&msgguid=<msgguid>
Por lo que yo utilizaba la URI:
  • http://SERVIDOR:PUERTO/HttpAdapter/HttpMessageServlet?interfaceNamespace=http%3A//namespace.com/test&interface=SI_INTFZ_OB&senderService=BC_SENDER&senderParty=&receiverParty=&receiverService=DES_100&qos=EO&queueid=&msgguid=
Lo cual me devolvía dicho error.

Tras muchas depuraciones y adaptar la URI a los parámetros mínimos necesarios, conseguí que el mensaje se procesara correctamente, en mi caso contra la siguiente URI:
  • http://SERVIDOR:PUERTO/HttpAdapter/HttpMessageServlet?interfaceNamespace=http%3A//namespace.com/test&interface=SI_INTFZ_OB&senderService=BC_SENDER&qos=EO
Referencias

No hay comentarios: