function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion

Webservice callout error: Invalid Session ID found in SessionHeader

Hi All,


I am a newbie to webservice. So just tried to create my first webservice.


I created the helloworld webservice class in one salesforce instance. I generated wsdl file from that.


I parsed this wsdl file to generate an apex class in another salesforce instance. I wrote a trigger and called an apex class


In the apex class I called the stub class of the parsed apex class. But I am getting the following error:


System.CalloutException: Web service callout failed: WebService returned a SOAP Fault: INVALID_SESSION_ID: Invalid Session ID found in SessionHeader: Illegal Session faultcode=sf:INVALID_SESSION_ID faultactor=

 Following is the code of my apex class:


public class testwebser{ @future(callout=true) public static void webmethod(Id aa){ String strAuthorizationHeader, strUserName,strPassword; Blob blbHeaderValue; soapSforceComSchemasClassHelloworld.HelloWorldWebService hwb = new soapSforceComSchemasClassHelloworld.HelloWorldWebService(); soapSforceComSchemasClassHelloworld.SessionHeader_element objSession = new soapSforceComSchemasClassHelloworld.SessionHeader_element(); strUserName = ''; strPassword = 'hijacker56UF0IfKl12C9S1Jj9KY5uPMp'; blbHeaderValue = Blob.valueOf(strUserName + ':' + strPassword); strAuthorizationHeader = 'BASIC ' + EncodingUtil.base64Encode(blbHeaderValue); hwb.inputHttpHeaders_x = new Map<String,String>(); system.debug('header'+strAuthorizationHeader); hwb.inputHttpHeaders_x.put('Authorization', strAuthorizationHeader); hwb.inputHttpHeaders_x.put('myHeader','myValue'); hwb.SessionHeader =new soapSforceComSchemasClassHelloworld.SessionHeader_element(); String x=hwb.sayHello('hhhh'); System.debug('testing'+x); } }


 I am not able to understand what am I missing here.


Any suggestion will be of a great help.





Your code is sending credentials in a HTTP Authentication header, which is not supported by web services. You need to call the login method to get a sessionId (or get a sessionId through one of the other methods) and set the session soap header to the relevant value.
Arvin, I strongly suggest you reset your password.



I am also facing the same problem...please help me out. how to set the session id for session header.