use of com.salesforce.soap.partner.SessionHeader in project tdi-studio-se by Talend.
the class SObjectsToSchema method login.
boolean login(String userName, String password) throws ServiceException {
/**
* Next, the sample client application initializes the binding stub. This is our main interface to the API
* through which all calls are made. The getSoap method takes an optional parameter, (a java.net.URL) which is
* the endpoint. For the login call, the parameter always starts with http(s)://login.salesforce.com. After
* logging in, the sample client application changes the endpoint to the one specified in the returned
* loginResult object.
*/
binding = (SoapBindingStub) new SforceServiceLocator().getSoap();
// Time out after a minute
binding.setTimeout(60000);
// Test operation
LoginResult loginResult;
try {
System.out.println("LOGGING IN NOW....");
loginResult = binding.login(userName, password);
} catch (LoginFault ex) {
// The LoginFault derives from AxisFault
ExceptionCode exCode = ex.getExceptionCode();
if (exCode == ExceptionCode.FUNCTIONALITY_NOT_ENABLED || exCode == ExceptionCode.INVALID_CLIENT || exCode == ExceptionCode.INVALID_LOGIN || exCode == ExceptionCode.LOGIN_DURING_RESTRICTED_DOMAIN || exCode == ExceptionCode.LOGIN_DURING_RESTRICTED_TIME || exCode == ExceptionCode.ORG_LOCKED || exCode == ExceptionCode.PASSWORD_LOCKOUT || exCode == ExceptionCode.SERVER_UNAVAILABLE || exCode == ExceptionCode.TRIAL_EXPIRED || exCode == ExceptionCode.UNSUPPORTED_CLIENT) {
System.out.println("Please be sure that you have a valid username " + "and password.");
} else {
// Write the fault code to the console
System.out.println(ex.getExceptionCode());
// Write the fault message to the console
System.out.println("An unexpected error has occurred." + ex.getMessage());
}
return false;
} catch (Exception ex) {
System.out.println("An unexpected error has occurred: " + ex.getMessage());
ex.printStackTrace();
return false;
}
if (loginResult.isPasswordExpired()) {
System.out.println("An error has occurred. Your password has expired.");
return false;
}
/**
* Once the client application has logged in successfully, it will use the results of the login call to reset
* the endpoint of the service to the virtual server instance that is servicing your organization. To do this,
* the client application sets the ENDPOINT_ADDRESS_PROPERTY of the binding object using the URL returned from
* the LoginResult.
*/
binding._setProperty(SoapBindingStub.ENDPOINT_ADDRESS_PROPERTY, loginResult.getServerUrl());
/**
* The sample client application now has an instance of the SoapBindingStub that is pointing to the correct
* endpoint. Next, the sample client application sets a persistent SOAP header (to be included on all subsequent
* calls that are made with the SoapBindingStub) that contains the valid sessionId for our login credentials. To
* do this, the sample client application creates a new SessionHeader object and set its sessionId property to
* the sessionId property from the LoginResult object.
*/
// Create a new session header object and add the session id
// from the login return object
SessionHeader sh = new SessionHeader();
sh.setSessionId(loginResult.getSessionId());
/**
* Next, the sample client application calls the setHeader method of the SoapBindingStub to add the header to
* all subsequent method calls. This header will persist until the SoapBindingStub is destroyed until the header
* is explicitly removed. The "SessionHeader" parameter is the name of the header to be added.
*/
// set the session header for subsequent call authentication
binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "SessionHeader", sh);
return true;
}
use of com.salesforce.soap.partner.SessionHeader in project tdi-studio-se by Talend.
the class Test4Feature8540 method doQuery.
public void doQuery() throws Exception {
binding = (SoapBindingStub) new SforceServiceLocator().getSoap(new URL("https://www.salesforce.com/services/Soap/u/16.0"));
binding.setTimeout(60000);
LoginResult loginResult = binding.login("musicatcher@gmail.com", "1234qwer");
binding._setProperty(SoapBindingStub.ENDPOINT_ADDRESS_PROPERTY, loginResult.getServerUrl());
SessionHeader sh = new SessionHeader();
sh.setSessionId(loginResult.getSessionId());
binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "SessionHeader", sh);
// com.sforce.soap.partner.QueryOptions qOptions = new com.sforce.soap.partner.QueryOptions();
// qOptions.setBatchSize(new Integer(2));
// binding.setHeader(
// new com.sforce.soap.partner.SforceServiceLocator()
// .getServiceName().getNamespaceURI(),
// "QueryOptions", qOptions);
QueryResult qr = binding.query("SELECT Name, Type, Phone, Account.CreatedBy.CreatedBy.CreatedBy.Email, Account.Owner.city, (SELECT Contact.LastName, Contact.FirstName " + "FROM Account.Contacts Order By Contact.LastName), (SELECT Note.Title FROM Account.Notes), Account.Owner.Country " + "FROM Account WHERE Name !='United Oil & Gas Corp.'");
// QueryResult qr = binding
// .query("select Name,Id,Type from Account");
TopQueryResult topqr = new TopQueryResult();
topqr.processTopQueryResult(qr);
topqr.printResult();
List<TopRecord> allTopRecords = topqr.getAllTopRecords();
}
use of com.salesforce.soap.partner.SessionHeader in project tdi-studio-se by Talend.
the class SforceBasicConnection method init.
private void init() throws Exception {
if (clientID != null) {
co = new CallOptions();
co.setClient(clientID);
}
stub = new SforceServiceStub();
SforceManagementUtil.needCompression(stub, needCompression);
SforceManagementUtil.setTimeout(stub, timeout);
SforceManagementUtil.useHttpChunked(stub, useHttpChunked);
SforceManagementUtil.setHttpProxy(stub);
sh = new SessionHeader();
renewSession();
}
use of com.salesforce.soap.partner.SessionHeader in project tdi-studio-se by Talend.
the class PartnerSamples method login.
/*
* login sample Prompts for username and password, set class variable binding resets the url for the binding and
* adds the session header to the binding class variable
*/
private boolean login() {
un = getUserInput("Enter user name: ");
if (un.length() == 0) {
return false;
}
pw = getUserInput("Enter password: ");
if (pw.length() == 0) {
return false;
}
// Provide feed back while we create the web service binding
System.out.println("Creating the binding to the web service...");
/*
* There are 2 ways to get the binding, one by passing a url to the getSoap() method of the
* SforceServiceLocator, the other by not passing a url. In the second case the binding will use the url
* contained in the wsdl file when the proxy was generated.
*/
try {
binding = (SoapBindingStub) new SforceServiceLocator().getSoap();
} catch (ServiceException ex) {
System.out.println("ERROR: createing binding to soap service, error was: \n" + ex.getMessage());
System.out.print("Hit return to continue...");
return false;
}
// Time out after a minute
binding.setTimeout(60000);
// binding._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:8080/services/Soap/u/8.0");
// Attempt the login giving the user feedback
System.out.println("LOGGING IN NOW....");
try {
loginResult = binding.login(un, pw);
} catch (LoginFault lf) {
System.out.println(lf.getExceptionMessage());
// lf.printStackTrace();
getUserInput("\nHit return to continue...");
return false;
} catch (ApiFault af) {
System.out.println(af.getExceptionMessage());
getUserInput("\nHit return to continue...");
} catch (RemoteException re) {
System.out.println(re.getMessage());
re.printStackTrace();
getUserInput("\nHit return to continue...");
return false;
}
System.out.println("\nThe session id is: " + loginResult.getSessionId());
System.out.println("\nThe new server url is: " + loginResult.getServerUrl());
binding._setProperty(SoapBindingStub.ENDPOINT_ADDRESS_PROPERTY, loginResult.getServerUrl());
// binding._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:8080/services/Soap/u/8.0");
// Create a new session header object and set the session id to that
// returned by the login
SessionHeader sh = new SessionHeader();
sh.setSessionId(loginResult.getSessionId());
binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "SessionHeader", sh);
loggedIn = true;
// call the getServerTimestamp method
getServerTimestampSample();
// call the getUserInfo method
getUserInfoSample();
return true;
}
use of com.salesforce.soap.partner.SessionHeader in project tdi-studio-se by Talend.
the class SforceSessionConnection method init.
private void init() throws Exception {
if (clientID != null) {
co = new CallOptions();
co.setClient(clientID);
}
stub = new SforceServiceStub();
SforceManagementUtil.needCompression(stub, needCompression);
SforceManagementUtil.setTimeout(stub, timeout);
SforceManagementUtil.useHttpChunked(stub, useHttpChunked);
// SforceManagementUtil.setHttpProxy(stub);//don't support proxy for OAuth
sh = new SessionHeader();
// renewSession();
SforceManagementUtil.setEndpoint(stub, endpoint);
sh.setSessionId(session_id);
}
Aggregations