use of com.salesforce.soap.partner.LoginResult 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.LoginResult 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.LoginResult in project tdi-studio-se by Talend.
the class SforceBasicConnection method renewSession.
@Override
protected void renewSession() throws Exception {
// login_endpoint for login operation
SforceManagementUtil.setEndpoint(stub, login_endpoint);
LoginResult loginResult = stub.login(userInfo, null, co).getResult();
sh.setSessionId(loginResult.getSessionId());
String serviceEndPoint = loginResult.getServerUrl();
this.serviceEndPoint = serviceEndPoint;
// server url for CRUD operation
SforceManagementUtil.setEndpoint(stub, serviceEndPoint);
}
Aggregations