package com.sap.mw.jco.jra.examples;
import java.io.*;
import java.util.Hashtable;
import java.util.Properties;
import javax.naming.*;
public class TestClient
{
public TestClient()
{
}
/**
* This helper method generates a 8 digit number
*/
private static String generateBankNumber()
{
String bankNumber = "";
for(int i = 0; i < 8; i++)
{
long digit = Math.round(Math.random() * (double)10);
if(digit > 9)
digit = 9;
bankNumber = bankNumber + digit;
}
return bankNumber;
}
public static void main(String args[])
{
// you need to configure the logon properties for your App. Server
String m_bankNumber = "";
String url = "localhost";
String userName = "Administrator";
String password = "";
Context ctx = null;
try
{
// This is an example of properties you need to set.
// Following properties are real properties needed for SAP J2EE Engine 6.20
Properties ctxProp = new Properties();
ctxProp.put("java.naming.factory.initial", "com.inqmy.services.jndi.InitialContextFactoryImpl");
//contextFactoryName = "com.sap.engine.services.jndi.InitialContextFactoryImpl"; // for SAP J2EE Engine 6.30
ctxProp.put("java.naming.provider.url", url);
ctxProp.put("java.naming.security.principal", userName);
ctxProp.put("java.naming.security.credentials", password);
ctx = new InitialContext(ctxProp);
}
catch(NamingException e)
{
System.out.println("Can't get context.");
System.exit(1);
}
// lookup for EJB instances
ExampleHome home = null;
try
{
home = (ExampleHome)ctx.lookup("ExampleBean");
}
catch(Exception e)
{
System.out.println("Can't look up ExampleBean.");
e.printStackTrace();
}
Example bean = null;
try
{
bean = home.create();
}
catch(Exception e)
{
System.out.println("Can't create an ExampleBean .");
e.printStackTrace();
}
ExampleBMHome bmhome = null;
try
{
bmhome = (ExampleBMHome)ctx.lookup("ExampleBMBean");
}
catch(Exception e)
{
System.out.println("Can't look up ExampleBMBean.");
e.printStackTrace();
}
ExampleBM bmbean = null;
try
{
bmbean = bmhome.create();
}
catch(Exception e1)
{
System.out.println("Can't create an ExampleBMBean .");
e1.printStackTrace();
}
ExampleAMAHome amahome = null;
try
{
amahome = (ExampleAMAHome)ctx.lookup("ExampleAMABean");
}
catch(Exception e)
{
System.out.println("Can't look up ExampleAMABean.");
e.printStackTrace();
}
ExampleAMA amabean = null;
try
{
amabean = amahome.create();
}
catch(Exception e1)
{
System.out.println("Can't create an ExampleAMABean .");
e1.printStackTrace();
}
// load R/3 connection properties. There are only needed for ExampleAMABean
Properties prop = null;
if (args == null || args.length == 0 || args[0].equals("")) {
System.out.println("Usage java com.sap.mw.jco.jra.examples.TestClient <logon-properties>");
//System.exit(1);
}//if
else
{
try {
prop = new Properties();
prop.load(new FileInputStream(args[0]));
}
catch(Exception e)
{
System.out.println("properties could not be loaded");
//System.exit(1);
}
}
System.out.println("output from examples");
try
{
//call methods from beans
System.out.println("\nCalling method testSimpleConnection() ");
System.out.println(bean.testSimpleConnection());
System.out.println("\nCalling method callFunctionStfcConnection() ");
System.out.println(bean.callFunctionStfcConnection("Function STFC_CONNECTION successfully called"));
System.out.println("\nCalling method callBapiBankCreateUsingContainerTransaction()");
m_bankNumber = generateBankNumber();
System.out.println(bean.callBapiBankCreateUsingContainerTransaction("DE", m_bankNumber, "ContainerTransaction", "Walldorf"));
System.out.println("Calling method callBapiBankGetDetail() ");
System.out.println(bean.callBapiBankGetDetail("DE", m_bankNumber));
System.out.println("\nCalling method callBapiBankCreateUsingUserTransaction");
m_bankNumber = generateBankNumber();
System.out.println(bmbean.callBapiBankCreateUsingUserTransaction("DE", m_bankNumber, "UserTransaction", "Walldorf"));
System.out.println("Calling method callBapiBankGetDetail() ");
System.out.println(bean.callBapiBankGetDetail("DE", m_bankNumber));
System.out.println("\nCalling method callBapiBankCreateUsingLocalTransaction");
m_bankNumber = generateBankNumber();
System.out.println(bmbean.callBapiBankCreateUsingLocalTransaction("DE", m_bankNumber, "UserTransaction", "Walldorf"));
System.out.println("Calling method callBapiBankGetDetail() ");
System.out.println(bean.callBapiBankGetDetail("DE", m_bankNumber));
System.out.println("\nCalling method testSimpleConnection() on ExampleAMABean");
System.out.println(amabean.testSimpleConnection(prop));
System.out.println("\nCalling method callBapiBankGetList() from component (bean) Managed bean ");
System.out.println("List of banks:");
System.out.println((Util.transformTableToString("\t", bean.callBapiBankGetList("DE", 5))));
}
catch(Throwable e)
{
System.err.println("\nException on Client invocating bean methods");
e.printStackTrace();
}
}
}