• Shekhar
  • NEWBIE
  • 0 Points
  • Member since 2007

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 0
    Replies
I am new to salesforce. I am trying to log in to the salesforce server using Java. I read the Webservices API page and the cookbook and was able to write the following code. I used the samples given on the website.
Code:
package org.salesforce.samples;

import java.io.BufferedReader;
import java.io.IOException;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import com.sforce.soap.partner.LoginResult;
import com.sforce.soap.partner.SessionHeader;
import com.sforce.soap.partner.SforceServiceLocator;
import com.sforce.soap.partner.SoapBindingStub;
import com.sforce.soap.partner.fault.ApiFault;
import com.sforce.soap.partner.fault.LoginFault;

public class PartnerSamples {

 private SoapBindingStub binding;
 private LoginResult loginResult = null;
 private String un = "";
 private String  pw = "";
  
        static BufferedReader rdr = new BufferedReader(new java.io.InputStreamReader(System.in));

 public PartnerSamples() {
 }

 public static void main(String[] args) {
  PartnerSamples samples1 = new PartnerSamples();
  samples1.login();
 }

 String getUserInput(String prompt) {
  System.out.print(prompt);
  try {
   return rdr.readLine();
  } catch (IOException ex) {
                    System.out.println(ex);
  return null;
  }
 }
 private boolean login() {
  un = getUserInput("Enter user name: ");
  if (un.length() == 0) {
   return false;
  }
  pw = getUserInput("Enter password: ");
  if (pw.length() == 0) {
   return false;
  }
  System.out.println("Creating the binding to the web service...");
         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;
  }
  binding.setTimeout(60000);
  System.out.println("LOGGING IN NOW....");
  try {
   loginResult = binding.login(un, pw);
  }catch (LoginFault lf) {
   System.out.println("in 1");
   lf.printStackTrace();
   getUserInput("\nHit return to continue...");
   return false;
  } catch (ApiFault af) {
   System.out.println("in 2");
   getUserInput("\nHit return to continue...");
  } catch (RemoteException re) {
   System.out.println("in 3");
   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());
  SessionHeader sh = new SessionHeader();
  sh.setSessionId(loginResult.getSessionId());
  binding.setHeader(new SforceServiceLocator().getServiceName().getNamespaceURI(), "SessionHeader", sh);
  return true;
 }
}
I am successfully able to build the code and run it. However when trying to login, i got the java.net.connectException. The complete exception is below.
Code:
init:
deps-jar:
compile:
run:
Enter user name:abc@xyz.com
Enter password:password
Creating the binding to the web service...
LOGGING IN NOW....
in 3
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.net.ConnectException: Connection timed out: connect
 faultActor: 
 faultNode: 
 faultDetail: 
        {http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection timed out: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:519)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:353)
        at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:71)
        at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
        at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
        at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at com.sforce.soap.partner.SoapBindingStub.login(SoapBindingStub.java:1844)
        at org.salesforce.samples.PartnerSamples.login(PartnerSamples.java:73)
        at org.salesforce.samples.PartnerSamples.main(PartnerSamples.java:33)

        {http://xml.apache.org/axis/}hostname:Jedi

java.net.ConnectException: Connection timed out: connect
        at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at com.sforce.soap.partner.SoapBindingStub.login(SoapBindingStub.java:1844)
        at org.salesforce.samples.PartnerSamples.login(PartnerSamples.java:73)
        at org.salesforce.samples.PartnerSamples.main(PartnerSamples.java:33)
Caused by: java.net.ConnectException: Connection timed out: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:519)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:353)
        at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:71)
        at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
        at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)

        at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
        ... 12 more
Hit return to continue...
 
I am using Java 1.6 and have just added the jar files for axis on the path. I am not running axis or tomcat in the background as i think i am trying to connect to the server on salesforce so i do not need to. Am i right in assuming this? The error is  caught in third catch block which is for remote exception. I am not able to understand what can i do to make it work.  Thank you in advance and sorry for the long post.
 
Shekhar