Call ejb from a java project

i have a steteless session bean and i want to access it from a standalone java application.It is working fine with a web client.
My java code is
public class TestEJBFromJava {
     public static void main(String[] args) {
          try {
                         Context ic= new InitialContext();
                         Object obj=ic.lookup("ejb/com/renault/test/TestHome");
                         TestHome home=(TestHome) PortableRemoteObject.narrow(obj,TestHome.class);
                         Test test=home.create();
                         System.out.println(test.printMyName);
                    } catch (NamingException e) {
                         e.printStackTrace();
                    } catch (RemoteException e) {
                         e.printStackTrace();
                    } catch (CreateException e) {
                         e.printStackTrace();
and the exception i m getting is......
vax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
     at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:652)
     at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:255)
     at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:292)
     at javax.naming.InitialContext.lookup(InitialContext.java:359)
     at com.renault.test.TestClient.main(TestClient.java:27)
Please help me to know where i went wrong...

You need to know that some questions like this are rather FAQ so check the other thread for similar problem
http://forum.java.sun.com/thread.jspa?threadID=5297502&tstart=0

Similar Messages

  • Calling EJB from from a client app

    Hi all,
    I am trying to call an EJB component from portal. The example EJB I have taken is from SDN Bonus Calculator example - Application Server/Web Dynpro/Samples and Tutorials/Using EJBs (20)
    I deployed the EAR file - no issue
    I wrote the following code in a client app and trying to connect to the EJB remotely.
              try {
                   java.util.Properties properties = new Properties();
                   properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sap.engine.services.jndi.InitialContextFactoryImpl");
                   properties.put(Context.PROVIDER_URL, "ux0800:55304");
                   InitialContext ctx = new InitialContext(properties);
                   //InitialContext ctx = new InitialContext();
                   // get ejb home
                   home =
                        (BonusCalculatorLocalHome) ctx.lookup(
                             "localejbs/MySessionBean");
                   theCalculator = home.create();
              } catch (Exception namingException) {
                   namingException.printStackTrace();
    I get the following error
    javax.naming.NoInitialContextException: Cannot instantiate class: com.sap.engine.services.jndi.InitialContextFactoryImpl [Root exception is java.lang.ClassNotFoundException: com.sap.engine.services.jndi.InitialContextFactoryImpl]
         at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
         at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
         at javax.naming.InitialContext.init(Unknown Source)
         at javax.naming.InitialContext.<init>(Unknown Source)
         at com.sap.bonus.calculation.sessionBean.MyCommandBean.<init>(MyCommandBean.java:27)
         at com.sap.bonus.calculation.sessionBean.MyCommandBean.main(MyCommandBean.java:68)
    Caused by: java.lang.ClassNotFoundException: com.sap.engine.services.jndi.InitialContextFactoryImpl
         at java.net.URLClassLoader$1.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClassInternal(Unknown Source)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Unknown Source)
         at com.sun.naming.internal.VersionHelper12.loadClass(Unknown Source)
    Any clue will be appreciated.
    thnx

    Hi Sabbir,
    Following code works for me in calling EJB from normal java application. Did you added the jar files to your application?. see the required jar files in end of code.
    Create simple java applcation do the following steps:
    Give JNDI name to the EJB(HelloJNDI)->Add the HelloEJB to HelloEAR ->deploy
    Proxy Program to call ejb:
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import com.sample.Hello;
    import com.sample.HelloHome;
    public class HelloTest {
         public static void main(String[] args) {
                       Hello remote = null;
                      try {
                        Context ctx = new InitialContext();
                        HelloHome home = (HelloHome) ctx.lookup("HelloJNDI");
                        remote = home.create();
                        String result = remote.hello();
                        System.out.print("Result:" + result);
                         } catch (Exception e) {
                                System.out.println("Exception:" + e.getLocalizedMessage());
    1. Go To  Run > Java Application ->New->select your project and select your main class(java program from which your going to call EJB)
    2. Click  next tab ->(x)=Arguments
    paste the following code in VM Arguments
    -Djava.naming.factory.initial=com.sap.engine.services.jndi.InitialContextFactoryImpl -Djava.naming.provider.url=localhost:50104
    replace the server IP address with your server IP address where your ejbs are running.
    Under Class path settings for the program put the following jar files.
    You can search for them from net weaver soruce folders
    or copy from D:\usr\sap\J2E\JC01\j2ee\j2eeclient
    ejb20.jar
    logging.jar
    exception.jar
    sapj2eeclient.jar
    Add Corresponding ejb.jar
    and RUN >>>
    this makes testing of your client programs easier, you can find the error trace on which line and saves lot of time.
    Regards, Suresh

  • Calling EJB from Java Stored Procedures

    Hi,
    I am trying to call an Enterprise Java Bean from stored procedure. This stored procedure calls a java program. As long as it is a simple java program it works fine and loadjava.exe does not give any problem (neither compile-time nor run-time).
    It is not working when I am trying to call EJB from it. It is giving compile-time error.
    If anybody has implemented the same please suggest how to go forward.
    thanks in advance,
    Shashank Agarwal

    I tried the same thing without any luck. I assume you are using OC4J for your EJB ...
    The compiling issue may be because you don't have the classes in your EJB client jar loaded into the database. Once those classes are loaded, you should loadjava without any problem.
    However, you won't be able to call the EJB server because the EJB client (your Java code in the DB) will need the OC4J environment (oc4j.jar). I have tried to load oc4j.jar into the DB as well, and that was a big mess and nothing worked. My DB is 8.1.7, maybe the new 9i have OC4J libs bundled?!?
    I looked around and only found 2 alternatives:
    1. Write a JSP page that acts like an EJB client, then use URLConnection in your DB java code to send params to the JSP for it to invlode the EJB
    2. Replace the JSP with RMI code, and use RMI instead of URLConnection in your DB code to invloke the EJB client.
    If you find any other solution, please share it here.
    Good luck!
    Hi,
    I am trying to call an Enterprise Java Bean from stored procedure. This stored procedure calls a java program. As long as it is a simple java program it works fine and loadjava.exe does not give any problem (neither compile-time nor run-time).
    It is not working when I am trying to call EJB from it. It is giving compile-time error.
    If anybody has implemented the same please suggest how to go forward.
    thanks in advance,
    Shashank Agarwal

  • Calling EJB from app client

    Hello, everybody,
    I'm very new at EJB and I'm trying to learn it.
    I have created Enterprise Application using Netbeans IDE, I have EJB and APP client. What I want is to connect to my MySql database and get some info from table.
    For e.g. Login and Password.
    How can I call EJB from my client app which connects to my database and gets information I need?

    What server you are using?
    if you use jboss AS ,here is a simple Main class how to connect EJB and access ejb methods:
    package com.david.ejb.client;
    import java.util.Properties;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.rmi.PortableRemoteObject;
    import com.david.ejb.domain.Person;
    import com.david.ejb.domain.PersonRemote;
    public class Main {
         public static void main(String[] args) {
              try {
                   Context ctx = getInitialContext();
                   Object obj = ctx.lookup("PersonSessionRemote/remote");
                PersonRemote pr=(PersonRemote)PortableRemoteObject.narrow(obj, PersonRemote.class);
                Person p=new Person();
                p.setName("david");
                pr.addPerson(p);
                pr.findPerson(1);
                   // System.out.print(br.find(pk).getAuthor_name());
              } catch (Exception ex) {
                   ex.printStackTrace();
         private static Context getInitialContext() throws NamingException {
              Properties p = new Properties();
              p.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.NamingContextFactory");
              p.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
              p.setProperty(Context.PROVIDER_URL, "jnp://localhost:1099");
              return new InitialContext(p);
    }Person is ant @Entity and PersonRemote is remote interfaces, to connect database you have to make datasource file at jboss-4.2.3.GA\server\default\deploy
    simle mysql-ds.xml looks like this:
    datasources>
       <local-tx-datasource>
          <jndi-name>some name</jndi-name>
          <connection-url>jdbc:mysql://localhost:3306/dbname</connection-url>
          <driver-class>com.mysql.jdbc.Driver</driver-class>
          <user-name>root</user-name>
          <password>root password</password>
          <min-pool-size>5</min-pool-size>
          <max-pool-size>100</max-pool-size>
          <idle-timeout-minutes>15</idle-timeout-minutes>
          <exception-sorter-class-name>com.mysql.jdbc.integration.jboss.ExtendedMysqlExceptionSorter</exception-sorter-class-name>
          <valid-connection-checker-class-name>com.mysql.jdbc.integration.jboss.MysqlValidConnectionChecker</valid-connection-checker-class-name>
       </local-tx-datasource>
    </datasources>also at resources/META-INF directory you must have persistence.xml like this
    <persistence>
         <persistence-unit name="SimpleEjb">
              <jta-data-source>java:/some name</jta-data-source>
              <properties>
                   <property name="hibernate.hbm2ddl.auto" value="update" />
                   <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
                   <property name="hibernate.show_sql" value="true"/>
                   <property name="hibernate.format_sql" value="true"/>
              </properties>
         </persistence-unit>
    </persistence>

  • Help me which JNDIFactory to use to access EJB from a java class of JAR

    I am confused in understanding the different JNDI factories
    RMIInitialContextFactory, ApplicationInitialContextFactory and ApplicationClientInitialContextFactory
    And the different namespaces like global, container local and component local.
    Especially is there any relationship between the JNDI factories and the namespaces?
    Or are they related to the deployment descriptors.
    Because in application specific deployment descriptors (orion-ejb-jar.xml), we just map the JNDI location with the object (or its reference from ejb-jar.xml). We dont specify it can be accessed from this factory or that.
    Shall we access an EJB from using any JNDI factory?
    Specifically, I am stuck with what Factory to use to access an EJB from a Java class in a library (jar). The JAR is packaged with the EAR which contains the EJB Jar that I am trying to access.
    THANK YOU

    Ed,
    As Robin said, I think you need code similar to this:
    Context c = new InitialContext();
    Object o = c.lookup("java:comp/env/Name");where Name is the name of your EJB as it appears in the "ejb-jar.xml"
    deployment descriptor XML file.
    Good Luck,
    Avi.

  • Call ejb from browsers

    Hello Developers!
    I deployed my ejb to OAS4081. I call that
    from JDeveloper so it good. But when I try
    to call from applet in IExpl5 I can't
    instantiate the ORB. I've got a com.ms.security.SecurityException : oracle.oas.orb.CORBA.ORB.init
    I coded the CLASSPATH(oasoorb(yoj),client,
    ejbapi...) perfectly, I think.
    If anybody could help, please...
    Thanx!

    Hi there,
              I saw someone on this group had a problem to locate proper classpath
              to call EJB from JSP. I thought if you call EJB from classpath, you are
              calling the bean. But you loss all the EJB functions. To be able to utilize
              EJB features like object pooling. You need to call it from Weblogic server
              using url/jndi, not from the jar directly.
              Any comment? Am I right?
              BTW, my question about calling EJB from JSP means calling through URL,
              not a local path.
              Thank you
              >-------------------------------------------------------------------->
              Jim wrote in message <[email protected]>...
              >Hi there,
              > Can I call EJB from JSP? Is there a particular security setting or
              >concern for Weblogic? Is there an coding example?
              >
              >Thank you
              >
              >
              

  • Calling servlet from a java program

    Hi
    I need to call a servlet's doPost() method from a java program. I have a specific situation, where I need to call servlet from a java program. DUring this call I need to pass a file and two string to the servlet. Servelt after receiving the file and string uploads the file to the server at a specified location. I am stuck up as how to call servlet from a java program instead of a HTML or JSP.
    Can anyone help me to start with this.
    any suggestion is welcome.

    You have to establish a URLConnection with servlet from your java program.
    URL servletURL = new URL("http://localhost:8080/Myservlet?str1=abc&str2=def");
    URLConnection servletConnection = servletURL.openConnection();you can get the objectOutputStream
    ObjectOutputStream oos = new ObjectOutputStream (servletConnection.getOutputStream());
    oos.writeObject(your file object);-------------------------------------------------
    In the servlet u can get the strings using request.getParameter("str1");
    In the servlet u can get the strings using request.getParameter("str2");
    file = new ObjectInputStream (request.getInputStream()).readObject()a lot of resources are available on this ...
    hope this helps :)

  • Calling Servlet from a java prog?

    Hi all,
    I am calling servlet from a java prog (Java Agent in Lotus Notes) by using URL and URLConnection object. how can i trigger the Servlet By using doPost method .I have to send some parameter also.
    Thanx
    Muthu

    you need to open a connection to the servlet. Then you must call getInputStream() and getOutputStream() and use them in any way you see fit. I was trying this before and could not get POST to work unless I openned the input stream from the servlet. Strange... but doGet worked without openning the input stream???
    // open a connection....
    // write to the servlet
    servletConnection.getOutputStream().write("whatever");
    servletConnection.getOutputStream().flush();
    servletConnection.getOutputStream().close();
    // grab what the servlet sends back, required to do a post.
    byte [] in = new byte[100];
    servletConnection.getInputStream().read(in);
    servletConnection.getInputStream().close();

  • Looking up EJBs from a java client

    While trying to migrate my application from standalone-oc4j
    to Oracle Application Server 10g, I ran into the following problem.
    My application has a stateless session bean. When trying to lookup the bean (from a java client), I get the following exception:
    javax.naming.NamingException: Lookup error: javax.naming.AuthenticationException
    Invalid username/password for UnifyoccEAR (ias_admin)
    My code used the username/password I used to log into web-based console (which I used to deploy the application). The lookup code follows:
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,
    OracleJASLayer.INITIAL_CONTEXT_FACTORY);
    env.put(Context.PROVIDER_URL, "ormi://localhost:3201/UnifyoccEAR");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, username);
    env.put(Context.SECURITY_CREDENTIALS, password);
    Context ctx = new InitialContext(env);
    Object obj = ctx.lookup("unify/nxj/controlCenters/occ/ControlCenterEJB");
    On a whim, I tried the old SCOTT/TIGER username/password and got the following
    exception:
    javax.naming.NoPermissionException: Not allowed to look up unify/nxj/controlCenters/occ/ControlCenterEJB,
    check the namespace-access tag setting in orion-application.xml for details
    So evidently, SCOTT/TIGER is in the security database used by the app (but isn't
    authorized) while the ias_admin user is not in the security database.
    I have the following questions:
    1. In the default configuration, is there a username/password I can use to
    lookup EJB homes in the jndi namespace of an OC4J instance? If so, what
    is it?
    2. Where is the security database? I tried looking in the web-based console
    to find how to configure security and could not figure it out. I did find
    the Security page for the application, but when I tried to add a user,
    it had no effect. Furthermore, this page did not show a user entry for
    SCOTT; hence, it doesn't seem that OC4J is actually using the information
    on this page. This is strange because the path to this page is:
    Farm > Application Server: ias_admin.lab10.sac.unify.com > OC4J: home > Application: UnifyoccEAR > Security
    I then went to the Security page for the default application and found
    that it did have a SCOTT user. So I added a new user and tried to run
    my java client. This resulted in the javax.naming.AuthenticationException
    described above (I was expected the NoPermissionException encounted when
    using SCOTT/TIGER). Next, I used the Security page for the default application
    to change the password for SCOTT and reran my java client using SCOTT/TIGER.
    This time I was expecting an AuthenticationException exception, but got the
    NoPermission exception. Therefore, it seems that OC4J isn't using this
    security data either.
    Hunting in the console (again) for the security database, I stumble accross
    the Infrasturcture page and see an Identity Management section and see that
    it is configure to use an Oracle Internet Directory server. Using
    <ORACLE_HOME>/bin/oidadmin, I connect to the directory server and look
    for the SCOTT user. I don't find it, so I believe that this can't be the
    security database either.
    3. Finally, how do I configure the OC4J instance such that it will allow
    anonymous users to lookup my EJB from a java client?
    Please help a confused and frustrated user.

    Looking at your example, it looks like you are using a J2EE client container or some properties file to specify the JNDI environment used to create the initial context (for you use the no-arg constructor to InitialContext). Since our application needs to the ability to dynamically connect to ejb's running on different Java application servers (e.g., WebLogic, WebSphere, JBoss), such an approach will not work. Instead we must do it the old-fashioned way and pass the jdni connection info to the InitialContext constructor.
    In any event, our problem isn't how to write the connection code, it is how to test it. Specifically, we can't figure out a valid username/password that will allow us to look up the home. Nor can we figure out how to configure security for the oc4j instance.

  • Example-- Call RFC from external Java Application

    Update: I need code example to call RFC from External Java application. Can onybody help me?                                                      
    RGDS
    RP
    hi all.
    i want to create my own log for each interface.
    i saw this blog:
    /people/michal.krawczyk2/blog/2006/09/20/xi-abap-mapping-logs--more-standard-better-visibility
    my doubt is how to catch the error that i see in SXI_MONITOR y put it in a Sub-Objetc.
    For example: in sxi_monitor i get the error for my interface NMUCustomer: "No receiver could not be found" or "Error Mapping Traformation".
    I created an Object called ZNMUCUSTOMER and a Sub-Objetc called ZERROR.
    what i must do to get the error I see in monitor and assign it to Sub-Object??
    Rgds.
    Message was edited by:
            Rodrigo Pertierra
    Message was edited by:
            Rodrigo Pertierra
    Message was edited by:
            Rodrigo Pertierra

    Hi,
    Oh, you are using ABAP mapping ......
    then use the following in ABAP mapping ..
    TRACE1,TRACE2,TRACE3.... for trace level 1,2,3......
    http://help.sap.com/saphelp_nw04/helpdata/en/ba/e18b1a0fc14f1faf884ae50cece51b/content.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5c46ab90-0201-0010-42bd-9d0302591383
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/866ce290-0201-0010-338f-b8c3553aaa0f
    Regards
    Chilla

  • Calling EJB from other EJB on other J2EE Server

    Can I call EJB from other EJB on other J2EE Server
    Servers - Websphere 5.0
    Do i require home & remote interface of that ejb on client side also
    Help me, please

    the problem is actually i require that is specific to websphere
    for example i want to call a method ion that ejb
    say my ejb name is myejb
    so the normal way i should call is
    InitialContext initialContext = new InitialContext();     
    Object homeObject = initialContext.lookup("ejb/MyEjbHome");
    MyEJBHome myEJBHome =(MYEjbHome )javax.rmi.PortableRemoteObject.narrow(homeObjectMYEjbHome.class);
              myEJB = lSHome.create();
    myEJB.someMethod();
    but here i am having class for home and remote available
    now if other app server i am not having this classes then what to do

  • Calling JPA from a Java Stored Procedure

    Is it possible to call JPA from a java stored procedure? If so, does anyone have example? How do you setup the persistence.xml?
    How does the peformance compare with straight JDBC in a java stored procedure?
    Thanks for any help!
    Johnny

    Hi Johnny:
    Basically you can run any JDK 1.5 framework inside your Oracle 11g JVM, I have experience integrating Lucene IR library as a new [Domain Index for Oracle 11g/10g|http://docs.google.com/View?id=ddgw7sjp_54fgj9kg] .
    I am not familiar with JPA internals but my advice is howto handle the connection inside the OJVM and the configuration files.
    Some time ago I took a look to SpringFramework integration and I found that writing a new ApplicationContext class which handles the loading of beans.xml from XMLDB repository instead a file should be enough to work.
    Another important point is the life cycle of the [Oracle internal JVM|http://download.oracle.com/docs/cd/E11882_01/java.112/e10588/chtwo.htm#BABHGJFI]. Unlike an standard JVM the OJVM is created once you first connect from the middle tier at OCI level and remains in execution during the connection pool existence.
    I mean, if you connect using a JDBC pool the JVM will remains running across multiple soft open/close connections of your middle tier application. This is good because you can read your persistence.xml file using a Singleton class and this expensive operation will be re-used by multiple open/close operation done from the middle tier.
    I suggest you do a simple Proof of Concept with a Hello World application and check if it works.
    Remember that any security issues will be notified to the .trc files, security issues are related to the strong security layer configured by default inside the OJVM, for example you can not read any files from the OS file system without an specific grant, you need another grant to access to the class loader and so on, but you can simply grant this specific needs to a database role and then grant this role to the user which connect to the OJVM.
    Another important point is related to the [End-of-Call Optimization|http://download.oracle.com/docs/cd/E11882_01/java.112/e10588/chtwo.htm#BABIFAAI] this can be useful if you want to perform some clean up in your Singleton class at the level of per-statement execution.
    Best regards, Marcelo

  • Call EJB from a XI Javamapping

    I have developed a simple EAR which contains a CMP with local and remote interfaces. This cmp may be successfully called using the remote-interface from a client (j2se) project. Now i like to call the same CMP from within a XI JavaMapping. In the execute method i am using the following code:
              InitialContext ctx;
              MeraConfigurationLocal configLocal = null;
              try {               
                   ctx = new InitialContext();
                   Object obj = ctx.lookup("localejbs/mgb.ch/XIMera_EAR/MeraConfigurationBean");
                   if (trace != null)
                        trace.addInfo("Got object from jndi: "+obj);
                   MeraConfigurationLocalHome configHome =     (MeraConfigurationLocalHome)obj;
                   if (configHome !=null) {
                        if (trace != null)
                             trace.addInfo("ConfigurationLocalHome: "+configHome);                                             
                   configLocal = configHome.create();
              } catch (Exception e) {
                   throw new StreamTransformationException(e.getMessage(), e);
              int port = Integer.parseInt(
                        configLocal.ReadParam(MeraResourcePoolDispatcherService.CFG_GENERAL_LISTENER_PORT));
              if (trace != null)
                   trace.addInfo("Got listenerport from localejbs/mgb.ch/XIMera_EAR/MeraConfigBean: "+port);
    after calling ctx.lookup ... i got the following traceentry in xi:
      <Trace level="1" type="T">*** START APPLICATION TRACE ***</Trace>
      <Trace level="2" type="T">Got object from jndi: [email protected]30</Trace>
      <Trace level="1" type="T">*** END APPLICATION TRACE ***</Trace>
    when i try to cast this obj into a MeraConfigurationLocal the system is throwing a ClassCastException

    Hello.
    Check my wiki article:
    http://wiki.sdn.sap.com/wiki/display/stage/SapNetweaverProcessIntegration.CallEjb3.0methodfromJavaclassmappingPI7.1
    (SapNetweaver Process Integration. Call Ejb 3.0 method from Java class mapping PI 7.1)

  • Calling EJB from JSP

    Hi - I'm running OC4J 9.0.2 on windows 2000
    I have a JSP that accepts user inputs and the call respective Servlets. Before the servlet gets called, I want to log a tracing event with an EJB(Stateless Session Bean).
    I have manipulated the "form" values with JavaScript but cannot find any docs on how to call an EJB from JavaScript in a JSP.
    The JSP and EJB works fine on there own. How do I get the "form" values into the EJB variables without JavaScript?
    The EJB logs fine while still in the "JAVA" part of the JSP but I don't know how to extract these 2 index values.
    Tks
    Andre
    Here is extract of code:
    <%@ page language="java" contentType="text/html;charset=windows-1252"%>
    <%@ page language="java" import="java.io.*"%>
    <%@ page language="java" import="java.util.*"%>
    <%@ page language="java" import="javax.naming.*"%>
    <%@ page language="java" import="javax.rmi.*"%>
    <%@ page language="java" import="WizardEvents.WizEventLog.*"%>
    <HTML>
    <HEAD>
    <BODY background="/wp/Background.gif">
    <script language="JavaScript">
    // build timer to display at bottom of screen for debugging of screen dumps
    function display_time()
    var da = new Date();
    var dd = da.getDate('DD');
    var dm = da.getMonth('MON')+1;
    var dy = da.getYear('YYYY');
    var h = da.getHours();
    var m = da.getMinutes();
    if (m < 10)
    m = "0" + m;
    var t = dy+"\-"+dm+"\-"+dd+" "+h+":"+m;
    defaultStatus = t;
    setTimeout("display_time()",60000); // one minute
    return true;
    function registerEvent()
    var menuItem = document.selRequest.selCategory.selectedIndex;
    var serviceOption = document.selRequest.serviceOption.selectedIndex;
    // now invoke EJB to log event
    alert("selected menu option is "+menuItem+" and service option "+serviceOption);
    return true;
    // get the value from the categories and build up list of the options...
    function buildItems()
    // alert("Building items");
    // get the index (starting with 0) of the categories selection
    var menuItem = document.selRequest.selCategory.selectedIndex;
    // reset the values for the options selection to 0
    document.selRequest.serviceOption.length=0;
    // define new array to hold options for transfer to selection item
    newOptions = new Array;
    // Now check which menu option, build list
    var newLength = 0;
    switch(menuItem)
    case 0:
    newLength = 1;
    newOptions[0] = new Option("No Service Option",0,false,false);
    break;
    case 1:
    newLength = 1;
    newOptions[0] = new Option("No Service Option",0,false,false);
    break;
    case 2:
    newLength = 1;
    newOptions[0] = new Option("No Service Option",0,false,false);
    break;
    case 3:
    newLength = 1;
    newOptions[0] = new Option("No Service Option",0,false,false);
    break;
    case 4:
    newLength = 1;
    newOptions[0] = new Option("No Service Option",0,false,false);
    break;
    case 5:
    newLength = 5;
    newOptions[0] = new Option("All wallet and airtime balance",0,true,true);
    newOptions[1] = new Option("Airtime balance",1,false,false);
    newOptions[2] = new Option("SMS-a-lot balance",2,false,false);
    newOptions[3] = new Option("Call Extender balance",3,false,false);
    newOptions[4] = new Option("Per Second Billing balance",4,false,false);
    break;
    case 6:
    newLength = 2;
    newOptions[0] = new Option("Subscriber data - Channel Provisioning Options",8,true,true);
    newOptions[1] = new Option("IBS Pending Transaction Inquiry",9,false,false);
    break;
    default:
    newLength = 1;
    newOptions[0] = new Option("No Service Option - Default",0,false,false);
    break;
    var serviceOption = document.selRequest.serviceOption;
    // transfer array to select statement
    for (var i=0; i < newLength; i++)
    serviceOption.options[i] = newOptions;
    </script>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
    <TITLE>Wizard Prepaid Interface</TITLE>
    <%----%>
    <BODY text="#FFFFFF" bgcolour="#ffffff" bgcolor="#3c698a" onload="display_time();" >
    <H2 ALIGN=Center>Wizard Prepaid Interface</H2>
    <PRE>
    <%
    java.util.Enumeration params=request.getParameterNames();
    StringBuffer urlBuf = request.getRequestURL();
    String urlValue = urlBuf.toString();
    int colPos = urlValue.indexOf(":8888");
    String serverName = urlValue.substring(0,colPos+5);
    String paramValues1[] = request.getParameterValues("event_ref_no");
    String eventRefNo = paramValues1[0];
    String paramValues2[] = request.getParameterValues("msisdn_no");
    String msisdnNo = paramValues2[0];
    String paramValues3[] = request.getParameterValues("operator_id");
    String operatorId = paramValues3[0];
    String paramValues4[] = request.getParameterValues("wizDB");
    String wizDB = paramValues4[0].toLowerCase();
    // set session values into session object
    session.removeAttribute("eventRefNo");
    session.removeAttribute("msisdnNo");
    session.removeAttribute("operatorId");
    session.removeAttribute("wizDB");
    session.removeAttribute("serverName");
    session.setAttribute("eventRefNo",eventRefNo);
    session.setAttribute("msisdnNo",msisdnNo);
    session.setAttribute("operatorId",operatorId);
    session.setAttribute("wizDB",wizDB);
    session.setAttribute("serverName",serverName);
    session.setAttribute("eventOpenCount","0");
    session.setAttribute("errorString","No errors encountered yet");
    // now build ref to lookup event log EJB
    WizardEvents.WizEventLog eventBean;
    Context ctx = new InitialContext();
    Object homeObject=ctx.lookup("WizEventLog");
    WizardEvents.WizEventLogHome home =
    (WizardEvents.WizEventLogHome)PortableRemoteObject.narrow(homeObject, WizardEvents.WizEventLogHome.class);
    eventBean=(WizardEvents.WizEventLog)PortableRemoteObject.narrow(home.create(),
    WizardEvents.WizEventLog.class);
    int eventRefNoInput = Integer.parseInt(eventRefNo);
    int operatorIdInput = Integer.parseInt(operatorId);
    long msisdnNoInput = Long.parseLong(msisdnNo);
    int callCatCodeInput = 177;
    int callCatItemCodeInput = 2;
    String machineName = "WEB";
    String moduleName = "WIZARDPREPAID.JSP";
    String[] resArray = null;
    // event logging EJB
    resArray = eventBean.setEventDetail(eventRefNoInput,
    operatorIdInput,
    callCatCodeInput,
    callCatItemCodeInput,
    machineName,
    moduleName,
    wizDB);
    %>
    </PRE>
    <%--
    // check if data passed is valid
    --%>
    <jsp:include page="/servlet/CheckValidURL" flush="true"></jsp:include>
    <%
    if (session.getAttribute("eventOpenCount").equals("1"))
    %>
    <H3 ALIGN=CENTER>MSISDN = <%=msisdnNo%></H3>
    <HR>
    <H4 ALIGN=CENTER>Prepaid Query History</H4>
    <%--
    onclick can empty the service options field
    --%>
    <TABLE>
    <TD>Enter request target :</TD>
    <%--action="/wp/servlet/ValidateParamsClass"--%>
    <FORM name="selRequest" method="POST" >
    <TD><SELECT name="selCategory" onchange="buildItems()" >
    <OPTION value="Prepaid Cards Loaded">Prepaid Cards Loaded</OPTION>
    <OPTION value="Prepaid Recycle History">Prepaid Recycle History</OPTION>
    <OPTION value="Prepaid Failed Recharges">Prepaid Failed Recharges</OPTION>
    <OPTION value="Prepaid Access4Life Status">Prepaid Access4Life Status</OPTION>
    <OPTION value="Prepaid Number4Life Status">Prepaid Number4Life Status</OPTION>
    <OPTION value="IBS Balance Inquiry">IBS Balance Inquiry</OPTION>
    <OPTION value="IBS Subscriber Data Inquiry">IBS Subscriber Data Inquiry</OPTION>
    </SELECT>
    </TD>
    </TABLE>
    <%--
    Build the possible service options for IBS depending on selection
    Create selection list and then assign default value of none
    --%>
    <TABLE>
    <TD>Possible Service Options:</TD>
    <TD><select name="serviceOption">
    <option value="">No option available</option>
    <SCRIPT>
    // re-build items to cater for FORWARD/BACK buttons, etc
    buildItems();
    </SCRIPT>
    </TD>
    </TABLE>
    <%--
    --%>
    <%--
    --%>
    <INPUT type="submit" value="Query Prepaid Systems" onclick="registerEvent()" >
    </FORM>

    Hi Christian,
    A few questions to clarify where the cause of the problem might be:
    1. When you run the JSP app in JDeveloper, are you connecting to the remotely deployed app module, or the local one in your workspace?
    2. In your JSP project, there is an appmodule.properties file. This file should specify the connection mode to use to connect to your EJB (ConnectMode=EJB), and should be deployed to a directory on your webserver's classpath, along with the connections.properties file. If the appmodule.properties file contains the wrong connectmode setting, or is not on the classpath for the webserver, this might be the cause.
    Let us know.

  • Calling EJB from class in same ear

    Has anyone ever attempted to call an EJB from a class that is in the same ear?
    I have a singleton class, not
    another EJB, that is trying to get ahold of an EJB to call a method. This method
    has been defined to have both
    a local and remote interface.
    I thought I should be able to get a hold of the local interface. When I try to
    get the interface out of JNDI
    as follows:
    PickupCpaLocalHome cpaHome = (PickupCpaLocalHome) ctx.lookup("pickup.PickupCpaEJBLocal");
    I get an exception:
    javax.naming.LinkException: [Root exception is
         javax.naming.NameNotFoundException: Unable to resolve
         'app/ejb/PickupCpaEJB.jar#PickupCpaEJB/local-home' Resolved: 'app/ejb'
         Unresolved:'PickupCpaEJB.jar#PickupCpaEJB' ; remaining name
         'PickupCpaEJB.jar#PickupCpaEJB/local-home']; Link Remaining Name:
    'java:app/ejb/PickupCpaEJB.jar#PickupCpaEJB/local-home'
    When I look at the JNDI tree using the WebLogic console, it shows that "pickup.PickupCpaEJBLocal"
    is
    in JNDI.
    Since the local interface doesn't work, I thought I'd try the remote interface.
    The remote interface
    works fine from my client and from another EJB in a different ear. Using the
    remote interface I get an
    exception when trying to cast the result to my home.
    java.lang.ClassCastException:
    com.fedex.pickup.j2ee.ejb.cpa.PickupCpaEJB_gapk5_HomeImpl_WLStub
    // Code
    PickupCpaHome cpaHome = (PickupCpaHome) ctx.lookup("pickup.PickupCpaEJBRemote");
    As I mentioned earlier, the same code works in a client and in an EJB in another
    ear.
    Any ideas

    Has anyone ever attempted to call an EJB from a class that is in the same ear?
    I have a singleton class, not
    another EJB, that is trying to get ahold of an EJB to call a method. This method
    has been defined to have both
    a local and remote interface.
    I thought I should be able to get a hold of the local interface. When I try to
    get the interface out of JNDI
    as follows:
    PickupCpaLocalHome cpaHome = (PickupCpaLocalHome) ctx.lookup("pickup.PickupCpaEJBLocal");
    I get an exception:
    javax.naming.LinkException: [Root exception is
         javax.naming.NameNotFoundException: Unable to resolve
         'app/ejb/PickupCpaEJB.jar#PickupCpaEJB/local-home' Resolved: 'app/ejb'
         Unresolved:'PickupCpaEJB.jar#PickupCpaEJB' ; remaining name
         'PickupCpaEJB.jar#PickupCpaEJB/local-home']; Link Remaining Name:
    'java:app/ejb/PickupCpaEJB.jar#PickupCpaEJB/local-home'
    When I look at the JNDI tree using the WebLogic console, it shows that "pickup.PickupCpaEJBLocal"
    is
    in JNDI.
    Since the local interface doesn't work, I thought I'd try the remote interface.
    The remote interface
    works fine from my client and from another EJB in a different ear. Using the
    remote interface I get an
    exception when trying to cast the result to my home.
    java.lang.ClassCastException:
    com.fedex.pickup.j2ee.ejb.cpa.PickupCpaEJB_gapk5_HomeImpl_WLStub
    // Code
    PickupCpaHome cpaHome = (PickupCpaHome) ctx.lookup("pickup.PickupCpaEJBRemote");
    As I mentioned earlier, the same code works in a client and in an EJB in another
    ear.
    Any ideas

Maybe you are looking for

  • Symbol Properties- Source; 'file: '???

    You can find this if you right click on a symbol in the library and select properties. And in the Source section there is a browse button for a file. I have a remote library set up on a few symbols in a project I am doing and thought that it would re

  • Looking for what software required for Enterprise Manager Installation

    Hi All,   I am fairly new in working with Enterprise Manager, Previously used 11g Database Control, but never install Enterprise Manager (OEM). Now due to the increase in databases, I am considering to install OEM (Oracle Enterprise Manager) to list

  • T60 does not boot with Intel T7600G CPU

    I replaced my Intel Core Duo T2400 with Intel Core 2 Duo T7600G CPU in ThinkPad T60(1951-CTO) laptop. However, laptop does not boot with Intel Core 2 Duo T7600G CPU. It doesn't even complete the POST: https://db.tt/8UL8FlE0 As seen in the video, I pl

  • Logitech Harmony One with Mac OS Lion

    Recently purchased a new Harmony One remote and have yet to set it up.  I am running a macbook pro that was purchased last summer right after thunderbolt was introduced on the macbook pro's.  I have since upgraded to Lion.  The question is that I hav

  • JSR-168 Navigation

    I would like to navigate from a Portal page containing JSR-168 portlets to another similar Portal page. I have accomplished this using the EDK <pt:openerLink ...> method but I was unable to append a parameter that was visible to the portlets on the t