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.
