Gen CALL EXTERNAL from Java CAB fails authentication
search cancel

Gen CALL EXTERNAL from Java CAB fails authentication

book

Article ID: 370593

calendar_today

Updated On:

Products

Gen Gen - Workstation Toolset

Issue/Introduction

Under a WebSphere Application Server, using a Gen EJB Java server and Common Action Block (CAB) with CALL EXTERNAL statement to call a non-Gen Java web service results in the following exception for the runtime authentication:

TIRM030E: Application failed - Updates have been backed out

CSU-GENERAL-ERROR: WsErrorParser::parse(): ERROR PCAB_0101_PROPOSAL_DETAIL@0000000001,0040846200,0 322 [ XC/0] security.wssecurity.WSSContextImpl.s02: com.ibm.websphere.security.WSSecurityException: Exception org.apache.axis2.AxisFault: CWWSS6500E: There is no caller identity candidate that can be used to login. ocurred while running action:com.ibm.ws.wssecurity.handler.WSSecurityConsumerHandler$1@4f5068f9 (faultCode: soapenv:Server) (faultcode:soapenv:Server).

Using the same CAB from a Gen GUI C client the CALL EXTERNAL was successful after updating the Windows/C user exit file abrtexit.c file function ABRT_xcall_ws_soapheader_exit (Windows Action Block Runtime User Exits).
However there seems to be no equivalent user exit function in the Java user exit (Java Action Block Runtime User Exit WebServiceMethodCallExit).

Environment

Gen 8.6 Java applications.

Cause

The runtime authentication feature is only available for the CALL EXTERNAL 'C' runtime i.e. when CALL EXTERNAL is used in Gen 'C' language applications.
The feature is not available when CALL EXTERNAL is used in Gen 'Java' and 'C#' language applications.
See article: How does Gen CALL EXTERNAL support runtime authentication

Resolution

Existing COBOL servers are being migrated to Java EJBs and the COBOL External Action Blocks (EABs) they call are being migrated to Java web services.
The original plan was to use CALL EXTERNAL from the Gen Java servers to invoke the new web services. To avoid the limitation of the CALL EXTERNAL for Java having no runtime authentication the COBOL EABs will be migrated to Java EABs which will make the required calls to the new Java web services.

Additional Information

See the later CALL REST statement (consumption of RESTful web services) and its authentication features. Also hub article: Gen 8.6 Consuming REST Web Service APIs.
CALL REST is now the focus of future Gen web service consumption functionality.