RE: How to get a value from SOAP header using Axis C++?
We had a similar issue. We resolved it by modifying the source code and compiling our own Axis binaries. Add the following axis\include\axis\client\Call.hpp: /** * Returns the DeSerialized response header. */ IHeaderBlock* getDeSerHeaderBlock(const AxisChar * pName, const AxisChar * pNamespace); axis\src\engine\client\Call.cpp IHeaderBlock* Call::getDeSerHeaderBlock(const AxisChar * pName, const AxisChar * pNamespace) { if (m_pIWSDZ != NULL) { return m_pIWSDZ->getHeaderBlock(pName, pNamespace, false); } else { return NULL; } } axis\src\soap\SoapDeSerializer.h IHeaderBlock* getHeaderBlock(const AxisChar* pName, const AxisChar* pNamespace, bool bRemoveOrNot); axis\src\soap\SoapDeSerializer.cpp /* * Header block parsing should be done differently for different SOAP versions. * Since the Header blocks may be requested in a different order than it is in * the SOAP stream there must be a mechanism to manage the situation. Possibly * to re-parse the stream part which has unused header blocks. */ IHeaderBlock *SoapDeSerializer:: getHeaderBlock (const AxisChar * pName, const AxisChar * pNamespace, bool bRemoveOrNot) { // if no element there can be no Header blocks if (!m_pHeader) return NULL; return m_pHeader->getHeaderBlock (pName, pNamespace, bRemoveOrNot); } -Ryan From: Golikov, Vassili [mailto:vassili.goli...@credit-suisse.com] Sent: Friday, February 06, 2009 3:05 PM To: Apache AXIS C User List Subject: RE: How to get a value from SOAP header using Axis C++? C++. This is actual response from PowerCenter: http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> http://www.informatica.com/wsh";> 1d2b79bbe22efa2011f4cf3a9db http://www.informatica.com/wsh";>1d2b79bbe22efa2011f4cf3a9db Session ID is mentioned in two places. In the header: 1d2b79bbe22efa2011f4cf3a9db and in the body http://www.informatica.com/wsh";>1d2b79bbe22efa2011f4cf3a9db Could you tell me how to get that Session Id and re-submit in another header? E.g. http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";> http://www.informatica.com/wsh";> [string] http://www.informatica.com/wsh";> [string] [string] [string] [string] [int] [string] [int] Session ID should be here http://www.informatica.com/wsh";> [string] From: McCullough, Ryan [mailto:rmccullo...@rightnow.com] Sent: Friday, February 06, 2009 4:59 PM To: Apache AXIS C User List Subject: RE: How to get a value from SOAP header using Axis C++? Are you using Axis2/c? or Axis c++? From: Golikov, Vassili [mailto:vassili.goli...@credit-suisse.com] Sent: Friday, February 06, 2009 2:50 PM To: axis-c-user@ws.apache.org Subject: How to get a value from SOAP header using Axis C++? My apps server needs to talk to Informatica WS. It sends a session ID in the header which should be retrieved and used in all their requests. How can I get this value from a SOAP header? Vassilli Golikov Equity Derivatives IT Credit Suisse Securities (USA) LLC One Madison Avenue 10th Floor New York, NY 10010 212-325-8972 (Tel) Email: vassili.goli...@credit-suisse.com == Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html == == Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ==
RE: How to get a value from SOAP header using Axis C++?
C++. This is actual response from PowerCenter: http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> http://www.informatica.com/wsh";> 1d2b79bbe22efa2011f4cf3a9db http://www.informatica.com/wsh";>1d2b79bbe22efa2011f4cf3a9db Session ID is mentioned in two places. In the header: 1d2b79bbe22efa2011f4cf3a9db and in the body http://www.informatica.com/wsh";>1d2b79bbe22efa2011f4cf3a9db Could you tell me how to get that Session Id and re-submit in another header? E.g. http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";> http://www.informatica.com/wsh";> [string] http://www.informatica.com/wsh";> [string] [string] [string] [string] [int] [string] [int] Session ID should be here http://www.informatica.com/wsh";> [string] From: McCullough, Ryan [mailto:rmccullo...@rightnow.com] Sent: Friday, February 06, 2009 4:59 PM To: Apache AXIS C User List Subject: RE: How to get a value from SOAP header using Axis C++? Are you using Axis2/c? or Axis c++? From: Golikov, Vassili [mailto:vassili.goli...@credit-suisse.com] Sent: Friday, February 06, 2009 2:50 PM To: axis-c-user@ws.apache.org Subject: How to get a value from SOAP header using Axis C++? My apps server needs to talk to Informatica WS. It sends a session ID in the header which should be retrieved and used in all their requests. How can I get this value from a SOAP header? Vassilli Golikov Equity Derivatives IT Credit Suisse Securities (USA) LLC One Madison Avenue 10th Floor New York, NY 10010 212-325-8972 (Tel) Email: vassili.goli...@credit-suisse.com == Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html == == Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ==
RE: How to get a value from SOAP header using Axis C++?
Are you using Axis2/c? or Axis c++? From: Golikov, Vassili [mailto:vassili.goli...@credit-suisse.com] Sent: Friday, February 06, 2009 2:50 PM To: axis-c-user@ws.apache.org Subject: How to get a value from SOAP header using Axis C++? My apps server needs to talk to Informatica WS. It sends a session ID in the header which should be retrieved and used in all their requests. How can I get this value from a SOAP header? Vassilli Golikov Equity Derivatives IT Credit Suisse Securities (USA) LLC One Madison Avenue 10th Floor New York, NY 10010 212-325-8972 (Tel) Email: vassili.goli...@credit-suisse.com == Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ==
How to get a value from SOAP header using Axis C++?
My apps server needs to talk to Informatica WS. It sends a session ID in the header which should be retrieved and used in all their requests. How can I get this value from a SOAP header? Vassilli Golikov Equity Derivatives IT Credit Suisse Securities (USA) LLC One Madison Avenue 10th Floor New York, NY 10010 212-325-8972 (Tel) Email: vassili.goli...@credit-suisse.com == Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ==
RE: Spurious client time out errors -- duplicate transmission
It was my problem. I forgot to multiply by 1000 when setting time-out in milliseconds. Regards, Raghu From: Raghu Udupa [mailto:rud...@easylink.com] Sent: Friday, February 06, 2009 9:45 AM To: Apache AXIS C User List Subject: RE: Spurious client time out errors -- duplicate transmission Hi, This problem happens only when I use HTTP protocol. With HTTPS every thing works fine. One message is sent and one is received. I am using Axis2C/1.5.0 on a Linux server as a client communicating to a Web service. Each message is delivered to a possibly different web service through a separate process. The process communicates either via http or https depending on remote web service configuration On couple of occasions, I got time out error at the client, while message was successfully received at the host. I have set the session time out to 3 minutes. When I enable the trace log, this problem does not happen. Here is a snapshot of axis2c log. 1) [Thu Feb 5 17:05:03 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:05:03 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:05:03 2009] [error] engine.c(179) Transport sender invoke failed 2) [Thu Feb 5 17:05:03 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:05:03 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:05:03 2009] [error] engine.c(179) Transport sender invoke failed 3) [Thu Feb 5 17:15:41 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:15:41 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:15:41 2009] [error] engine.c(179) Transport sender invoke failed 4) [Thu Feb 5 17:19:47 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:19:47 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:19:47 2009] [error] engine.c(179) Transport sender invoke failed For each of the above 4 attempts, message was delivered at the web service. In addition, the client received time-out as soon as the request was sent even though session timeout is set to 180 seconds. Here is the time when message was sent. 1) 17:05:02 16 [9406] SendMessage: Call web service. Signature reqd <0> 17:05:03 16 [9406] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 2) 17:05:03 16 [9407] SendMessage: Call web service. Signature reqd <0> 17:05:03 16 [9407] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 3) 17:15:41 16 [9672] SendMessage: Call web service. Signature reqd <0> 17:15:41 16 [9672] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 4) 17:19:47 16 [9726] SendMessage: Call web service. Signature reqd <0> 17:19:47 16 [9726] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null Thanks, Raghu
RE: Axis C++ 1.6 client app connecting using https through http proxy
Ryan, Just send the stuff to me.I think you can also attach files to the jira.. If not, I can attach the files when you send them. thanks. Nadir Amra "McCullough, Ryan" wrote on 02/05/2009 07:39:02 PM: > [image removed] > > RE: Axis C++ 1.6 client app connecting using https through http proxy > > McCullough, Ryan > > to: > > Apache AXIS C User List > > 02/05/2009 07:39 PM > > Cc: > > "klitos.kyria...@gmail.com", Nadir Amra > > I think I have a working solution. > > Klitos, would you be willing to test my changes? Do you need Axis > binaries or source code? > > Nadir, if Klitos reports that my changes work, how can I go about > getting these changes included in the project? > > -Ryan > > -Original Message- > From: Klitos Kyriacou [mailto:klitos.kyria...@gmail.com] > Sent: Thursday, February 05, 2009 3:36 AM > To: Apache AXIS C User List > Subject: Re: Axis C++ 1.6 client app connecting using https through http proxy > > Thanks! That issue seems to have been open for two years. Hopefully, > your useful test report will help to move things on. > > Klitos
RE: Spurious client time out errors -- duplicate transmission
Hi, This problem happens only when I use HTTP protocol. With HTTPS every thing works fine. One message is sent and one is received. I am using Axis2C/1.5.0 on a Linux server as a client communicating to a Web service. Each message is delivered to a possibly different web service through a separate process. The process communicates either via http or https depending on remote web service configuration On couple of occasions, I got time out error at the client, while message was successfully received at the host. I have set the session time out to 3 minutes. When I enable the trace log, this problem does not happen. Here is a snapshot of axis2c log. 1) [Thu Feb 5 17:05:03 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:05:03 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:05:03 2009] [error] engine.c(179) Transport sender invoke failed 2) [Thu Feb 5 17:05:03 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:05:03 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:05:03 2009] [error] engine.c(179) Transport sender invoke failed 3) [Thu Feb 5 17:15:41 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:15:41 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:15:41 2009] [error] engine.c(179) Transport sender invoke failed 4) [Thu Feb 5 17:19:47 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:19:47 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:19:47 2009] [error] engine.c(179) Transport sender invoke failed For each of the above 4 attempts, message was delivered at the web service. In addition, the client received time-out as soon as the request was sent even though session timeout is set to 180 seconds. Here is the time when message was sent. 1) 17:05:02 16 [9406] SendMessage: Call web service. Signature reqd <0> 17:05:03 16 [9406] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 2) 17:05:03 16 [9407] SendMessage: Call web service. Signature reqd <0> 17:05:03 16 [9407] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 3) 17:15:41 16 [9672] SendMessage: Call web service. Signature reqd <0> 17:15:41 16 [9672] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 4) 17:19:47 16 [9726] SendMessage: Call web service. Signature reqd <0> 17:19:47 16 [9726] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null Thanks, Raghu
Spurious client time out errors -- duplicate transmission
Hi, I am using Axis2C/1.5.0 on a Linux server as a client communicating to a Web service. Each message is delivered to a possibly different web service through a separate process. The process communicates either via http or https depending on remote web service configuration On couple of occasions, I got time out error at the client, while message was successfully received at the host. I have set the session time out to 3 minutes. When I enable the trace log, this problem does not happen. Here is a snapshot of axis2c log. 1) [Thu Feb 5 17:05:03 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:05:03 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:05:03 2009] [error] engine.c(179) Transport sender invoke failed 2) [Thu Feb 5 17:05:03 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:05:03 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:05:03 2009] [error] engine.c(179) Transport sender invoke failed 3) [Thu Feb 5 17:15:41 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:15:41 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:15:41 2009] [error] engine.c(179) Transport sender invoke failed 4) [Thu Feb 5 17:19:47 2009] [error] http_client.c(460) Response timed out [Thu Feb 5 17:19:47 2009] [error] http_sender.c(1342) status_code < 0 [Thu Feb 5 17:19:47 2009] [error] engine.c(179) Transport sender invoke failed For each of the above 4 attempts, message was delivered at the web service. In addition, the client received time-out as soon as the request was sent even though session timeout is set to 180 seconds. Here is the time when message was sent. 1) 17:05:02 16 [9406] SendMessage: Call web service. Signature reqd <0> 17:05:03 16 [9406] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 2) 17:05:03 16 [9407] SendMessage: Call web service. Signature reqd <0> 17:05:03 16 [9407] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 3) 17:15:41 16 [9672] SendMessage: Call web service. Signature reqd <0> 17:15:41 16 [9672] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null 4) 17:19:47 16 [9726] SendMessage: Call web service. Signature reqd <0> 17:19:47 16 [9726] axis2_stub_op_ReceiveEasyLinkFaxService_ReceiveFax: return code is null Thanks, Raghu