Author Topic: Newbie help with Java error  (Read 969 times)

Offline Jay Deckman

  • Associate
  • **
  • Join Date: Apr 2017
  • Posts: 2
  • Forum Citizenship: +0/-0
Newbie help with Java error
« on: 18 Apr 2017 10:48:55 am »
Hello all,

I'm completely new to the Cognos SDK and have only passing experience with Java in general.  I need some help figuring out what is going on with my setup.  I'm still trying to work with all of the delivered examples, both installed with the SDK and one from a getting started with SDK document.  No matter which program I run I get the same error message so I'm assuming the problem is global.

I've tried it using JDK 1.6 and JDK 1.7.

Here is an example of the .java I'm running:
import java.net.URL;
import javax.xml.namespace.QName;
import org.apache.axis.client.Stub;
import org.apache.axis.message.SOAPHeaderElement;
import com.cognos.developer.schemas.bibus._3.BaseClass;
import com.cognos.developer.schemas.bibus._3.BiBusHeader;
import com.cognos.developer.schemas.bibus._3.ContentManagerService_PortType;
import com.cognos.developer.schemas.bibus._3.ContentManagerService_ServiceLocator;
import com.cognos.developer.schemas.bibus._3.PropEnum;
import com.cognos.developer.schemas.bibus._3.QueryOptions;
import com.cognos.developer.schemas.bibus._3.SearchPathMultipleObject;
import com.cognos.developer.schemas.bibus._3.SearchPathSingleObject;
import com.cognos.developer.schemas.bibus._3.Sort;
import com.cognos.developer.schemas.bibus._3.XmlEncodedXML;

public class SDKExample {
  private static String                  dispatcherURL = "http://localhost:9900/p2pd/servlet/dispatch";
  private static String                  nameSpaceID   = "REDACTED";
  private static String                  userName      = "REDACTED";
  private static String                  password      = "REDACTED";
  private ContentManagerService_PortType cmService     = null;
  private SearchPathSingleObject[] role =  new SearchPathSingleObject[] {};

  public static void main(String args[]) {
    SDKExample mainClass = new SDKExample(); // instantiate the class

    // Step 1: Connect to the Cognos services
    mainClass.connectToCognos(dispatcherURL);

    // Step 2: Logon to Cognos
    mainClass.logonToCognos(nameSpaceID, userName, password);

//I've commented these out to make the troubleshooting easier
    // Step 3: Execute tasks
//    mainClass.executeTasks();

    // Step 4: Logoff from Cognos
//    mainClass.logoffFromCognos();
  }

  // Step 1: Connect to the Cognos services
  private void connectToCognos(String dispatcherURL) {
    ContentManagerService_ServiceLocator cmServiceLocator = new ContentManagerService_ServiceLocator();

    try {
      URL url = new URL(dispatcherURL);
      cmService = cmServiceLocator.getcontentManagerService(url);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  // Step 2: Logon to Cognos
  private void logonToCognos(String nsID, String user, String pswd) {
    StringBuffer credentialXML = new StringBuffer();

    credentialXML.append("<credential>");
    credentialXML.append("<namespace>").append(nsID).append("</namespace>");
    credentialXML.append("<username>").append(user).append("</username>");
    credentialXML.append("<password>").append(pswd).append("</password>");
    credentialXML.append("</credential>");

    String encodedCredentials = credentialXML.toString();
    XmlEncodedXML xmlCredentials = new XmlEncodedXML();
    xmlCredentials.set_value(encodedCredentials);

    try {
      //cmService.logon(xmlCredentials, null);
      cmService.logon(xmlCredentials, role);
      SOAPHeaderElement temp = ((Stub) cmService).getResponseHeader("http://developer.cognos.com/schemas/bibus/3/", "biBusHeader");
      BiBusHeader CMbibus = (BiBusHeader) temp
          .getValueAsType(new QName("http://developer.cognos.com/schemas/bibus/3/", "biBusHeader"));
      ((Stub) cmService).setHeader("http://developer.cognos.com/schemas/bibus/3/", "biBusHeader", CMbibus);
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }

  // Step 3: Execute tasks
  private void executeTasks() {
    PropEnum props[] = new PropEnum[] { PropEnum.searchPath, PropEnum.defaultName };
    BaseClass bc[] = null;
    String searchPath = "/content//package";

    try {
      SearchPathMultipleObject spMulti = new SearchPathMultipleObject(searchPath);
      bc = cmService.query(spMulti, props, new Sort[] {}, new QueryOptions());
    } catch (Exception e) {
      e.printStackTrace();
      return;
    }

    System.out.println("PACKAGES:\n");
    if (bc != null) {
      for (int i = 0; i < bc.length; i++) {
        System.out.println(bc.getDefaultName().getValue() + " - " + bc.getSearchPath().getValue());
      }
    }
  }

  // Step 4: Logoff from Cognos
  private void logoffFromCognos() {
    try {
      cmService.logoff();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}


Here is the error message I get when executing:
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode:
 faultString: java.lang.NumberFormatException: For input string: &quot;&quot;
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}stackTrace:java.lang.NumberFormatException: For input string: &quot;&quot;
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:592)
        at java.lang.Integer.parseInt(Integer.java:615)
        at com.cognos.org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPSender.java:651)
        at com.cognos.org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
        at com.cognos.org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at com.cognos.org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:119)
        at com.cognos.org.apache.axis.SimpleChain.invoke(SimpleChain.java:84)
        at com.cognos.org.apache.axis.client.AxisClient.invoke(AxisClient.java:166)
        at com.cognos.org.apache.axis.client.Call.invokeEngine(Call.java:2785)
        at com.cognos.org.apache.axis.client.Call.invoke(Call.java:2768)
        at com.cognos.org.apache.axis.client.Call.invoke(Call.java:2444)
        at com.cognos.org.apache.axis.client.Call.invoke(Call.java:2367)
        at com.cognos.org.apache.axis.client.Call.invoke(Call.java:1813)
        at com.cognos.developer.schemas.bibus._3.ContentManagerServiceStub.logon(ContentManagerServiceStub.java:7393)
        at SDKExample.logonToCognos(SDKExample.java:71)
        at SDKExample.main(SDKExample.java:34)

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

java.lang.NumberFormatException: For input string: ""
        at com.cognos.org.apache.axis.AxisFault.makeFault(AxisFault.java:102)
        at com.cognos.org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:155)
        at com.cognos.org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at com.cognos.org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:119)
        at com.cognos.org.apache.axis.SimpleChain.invoke(SimpleChain.java:84)
        at com.cognos.org.apache.axis.client.AxisClient.invoke(AxisClient.java:166)
        at com.cognos.org.apache.axis.client.Call.invokeEngine(Call.java:2785)
        at com.cognos.org.apache.axis.client.Call.invoke(Call.java:2768)
        at com.cognos.org.apache.axis.client.Call.invoke(Call.java:2444)
        at com.cognos.org.apache.axis.client.Call.invoke(Call.java:2367)
        at com.cognos.org.apache.axis.client.Call.invoke(Call.java:1813)
        at com.cognos.developer.schemas.bibus._3.ContentManagerServiceStub.logon(ContentManagerServiceStub.java:7393)
        at SDKExample.logonToCognos(SDKExample.java:71)
        at SDKExample.main(SDKExample.java:34)
Caused by: java.lang.NumberFormatException: For input string: ""
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:592)
        at java.lang.Integer.parseInt(Integer.java:615)
        at com.cognos.org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPSender.java:651)
        at com.cognos.org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
        ... 12 more


Any help in troubleshooting this would be most appreciated.

Jay Deckman

Offline Andrew D Weiss

  • Community Leader
  • *****
  • Join Date: Jun 2008
  • Posts: 90
  • Forum Citizenship: +5/-0
    • Avnet BSP Software
Re: Newbie help with Java error
« Reply #1 on: 18 Apr 2017 11:06:11 am »
Jay,

The problem doesn't appear to be with your code, but rather with your server.  The SDK (more specifically Axis) is trying to read the HTTP Response Code from the server, which is an Integer (e.g. 200=OK, 500=Server Error).  However the server is returning blank for an error code.  Is your dispatcher really at http://localhost:9300/p2pd/servlet/dispatch?Âhttp://www.bspsoftware.com/products/metamanager/download/

-Andy
MetaManager makes administering IBM Cognos a breeze.  http://www.bspsoftware.com/MetaManager

Offline Jay Deckman

  • Associate
  • **
  • Join Date: Apr 2017
  • Posts: 2
  • Forum Citizenship: +0/-0
Re: Newbie help with Java error
« Reply #2 on: 20 Apr 2017 11:36:54 am »
Thanks for that help Andrew.  It looks like I was using the wrong connection data.

 


       
Twittear