0
public class webServicesTriggerClass
{
  @future(callout = true)
   public static void webServicesMethod(list<ID> Id1)
   {   
   partnerSoapSforceCom.Soap sp = new partnerSoapSforceCom.Soap(); 
   partnerSoapSforceCom.LoginResult lr = sp.login('****','****');
   soapSforceComSchemasClassNiralaapp.SessionHeader_element ses = new soapSforceComSchemasClassNiralaapp.SessionHeader_element();
    system.debug('################################' +ses.sessionId);
    ses.sessionId = lr.sessionId; 
   system.debug('################################' +ses.sessionId);   
   soapSforceComSchemasClassNiralaapp.MyFriendsDetailSoapApi vNapp=new soapSforceComSchemasClassNiralaapp.MyFriendsDetailSoapApi();
   list<MyFriend__c> mfList=new list<MyFriend__c>([select id,myEmail__c,friendName__c,friendEmail__c,aboutFriend__c ,age__c from MyFriend__c where id in:id1]);
     for(MyFriend__c mf:mfList)
      {
     string  s1= mf.myEmail__c;
     string  s2=mf.friendName__c;
     string  s3=mf.friendEmail__c;
     string  s4=mf.aboutFriend__c;
     integer i1=Integer.ValueOf(mf.age__c);
     boolean result=vNapp.addFriendDetails(s1,s2,s3,s4,i1);
     system.debug('################################' +result);    
      }
   }
}

Trigger--

trigger webServicesTrigger on MyFriend__c (after insert) 
 {
    list<ID> Ids=new list<ID>();
    for(MyFriend__c mYFR:Trigger.new)
     {
       Ids.add(mYFR.Id);
     }
     webServicesTriggerClass.webServicesMethod(Ids);
 }

When I am executing this code, I am getting this 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=

1 Answer 1

1

pluto,

just like you take the sessionId from loginResult and set it to sessionHeader, you need to take the serverURL from loginResult and assign it to the api object endpoint URL.. and the sessionHeader you initialized is not being assigned to the actual callout object.

vNapp.SessionHeader = ses;
vNapp.URL = lr.serverURL;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.