Hola

Yo creo que te falta instalar ademas el certificado de la Autoridad
Certificadora CA de  https://calidad.escondatagate.net/

*  GSK_OS400_ERROR_NOT_TRUSTED_ROOT (6000) - The certificate is not signed
by a trusted certificate authority *


El jue., 30 jul. 2020 a las 7:30, Miguel SB (<[email protected]>)
escribió:

> Buenas noches,
> Estoy tratando de enviar información mediante un web service SOAP desde
> AS400 pero me sale el siguiente mensaje de error:
> AxisTransportException: Cannot open a channel to the remote
> end. Failed to open connection to server, the operation
> gsk_secure_soc_init() failed. GSKit Error is 6000 - El certificado no está
> señalado por una Autoridad certificadora verificado.
>
> Instale el certificado del wsdl usando el  Digital Certificate Manager.
> Este es la url del wsdl:
> https://calidad.escondatagate.net/wsParser_2_1/soap/wsPaserSoap.wsdl
>
> Este es mi codigo en AS400:
>
> H bnddir('BASE64R4')
> H BNDDIR('BASE64':'QC2LE')
> F*- Accesos
> FPRB64     IF   E           K DISK
> *---------------------------------------------------------------*
> /copy /wsose/RPG01DEV/wsPaserSoapPort.rpgleinc
> /copy /QIBM/ProdData/OS/WebServices/V1/client/include/Axis.rpgleinc
> /copy /BASE64/QRPGLESRC/base64_h.rpgle
> /COPY /BASE64/QRPGLESRC/APR_BASE64_H.rpgle
> /copy /BASE64/QRPGLESRC/ifsio_h.rpgle
>  *----------------------------------------------------
>
>  *- ESTRUCTURAS DE TRABAJO                           -
>
>  *----------------------------------------------------
>
> d WsStub          ds                  likeds(This_t) Inz
>
> d Input2          ds                  likeds(EnviarDocumento_t) Inz
>
> d Result          ds                  likeds(EnviarDocumentoResponse_t)
> Inz
>  *----------------------------------------------------
>
> d KCOD            s             11A   Inz(*blanks)
> d KSUC            s              3S 0 Inz(*zeros)
> d wI              s              3S 0 Inz(*zeros)
> d wInt            s              3S 0 Inz(*zeros)
> d PMsg            S            256A   DIM(10)
> d wPos            s              3S 0 Inz(*zeros)
> d wString         s            500A   Inz(*blanks)
> d wRegion         s              2A   Inz(*blanks)
> d WWSUB           s              2A   Inz(*blanks)
> d XISUC           s              3S 0 Inz(*zeros)
> D wbase64xml      S        9999999A   inz
> D wbase64xm2      S        9999999A   inz
> d wwEncoded       s         100000A   Inz(*blanks)
> d wwEncLen        s             10i 0
> d b64pr           s             10i 0
> d A               s              5p 0
> D N               s              4s 0
> d fd              s             10i 0
> d rddata          s         999999A
> D flags           s             10U 0
> d mode            s             10U 0
> d msg             s             50A
> d len             s             10i 0
> d var1            s         999999A   Inz(*blanks)
> d ruta            s            100A   Inz(*blanks)
> d NULLSTR         s              1A   Inz(x'00')
> d none            s              6a
> d settrue         s              6a
> d setfalse        s              6a
>  *--------------------------------------------------------------------
>  * Web service logic.
>  *--------------------------------------------------------------------
>  /free
>    CLEAR PRPT;
>    CLEAR PHASH;
>
>    clear WsStub;
>    clear Input2;
>
>     WsStub.endpoint = '
> https://calidad.escondatagate.net:443/wsParser_2_1/soap';
>
> ruta = '/QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB' + x'00';
> none = 'NONE' + x'00';
> SETFALSE = 'false' + x'00';
> EXSR LEETX;
> b64pr = apr_base64_encode_binary(var1
>                                 :rddata
>                                 :len);
>
> Input2.fileName.value = '20347646891-01-F602-0009060.txt';
> Input2.fileContent.value = var1;
>
> // Invoca la operación del WebService
>    IF (stub_create_wsPaserSoapPort(WsStub) = *ON);
>       axiscStubSetUsername(WsStub.handle:I20USE);
>       axiscStubSetPassword(WsStub.handle:I20PSW);
>       axiscStubSetSecure(WsStub.handle:
>          %addr(ruta): %addr(NULLSTR): %addr(NULLSTR): %addr(NONE):
>          %addr(NONE): %addr(NONE): %addr(NULLSTR): %addr(NULLSTR):
>          %addr(SETFALSE): *NULL);
>
>    IF (stub_op_enviarDocumento(WsStub:Input2:Result)=*ON);
>          PRPT = Result.responseMessage;
>          PHASH = Result.hashcode;
>    ELSE;
>    ENDIF;
>
>    // Destroy Web service stubs.
>    stub_destroy_wsPaserSoapPort(WsStub);
> ELSE;
> ENDIF;
>
>   *INLR=*ON;
> /end-free
>  *---------------------------------------------------
> C     LEETX         BEGSR
> C                   EVAL      flags = O_RDONLY
> C                   EVAL      FD = OPEN('/BASE64/PRUEBA.TXT':
> C                                       FLAGS)
> C                   IF        FD < 0
> C                   EVAL      MSG = 'ERROR'
> C                   ENDIF
>  *-
> C                   EVAL      LEN = READ(FD: %ADDR(RDDATA):
> C                                            %SIZE(RDDATA))
> C                   EVAL      MSG = 'TAMAÑO:' + %TRIM(%EDITC(LEN:'M'))
> C     Msg           dsply
> C                   callp     close(fd)
> C                   ENDSR
>
>
> Gracias por las respuestas
>
> Miguel
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
�nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.

Reply via email to