Connecting to an ejb from another appserver

Hello,
I need to connect to an EJB running on a company's REMOTE Weblogic
appserver. I have done so using normal class files but now I wish to use an
EJB to do so. I am using Jboss but am getting errors from Jboss saying that
it cannot find certain files. Should I be able to connect to the remote
Weblogic server simply by giving JBOSS the url/t3 of it? This is what I am
doing in the JBOSS deployed ejb:
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, "t3://xxx.xxx.xx.xx");
InitialContext ctx = new InitialContext(properties);
should I just be using JBOSS context factory in my bean code or do I need
weblogic's? Doing this the way I am above, Jboss says it cannot find
"weblogic.jndi.WLInitialContextFactory". So I jared up the parent directory
inserting it into jboss and the next time it told me it couldn't find
com.java.util.collections.ArrayList. So I jarred up the com directory from
weblogic and gave jboss access to it. I now get a classnotfound for a class
which IS contained in the com directory which is now available to Jboss.
This tells me that I am going about this THE WRONG WAY. If anyone can help
or point me to a tutorial telling me how I can use another appserver to
connect to a remote Weblogic Server I would greatly appreciate it.
Troy Harris

Easier said then done (getting the higher ups to spend money on an expensive
ejb server right now).
Thanks,
Troy Harris
"Rob Woollen" <[email protected]> wrote in message
news:[email protected]..
No, you would need the weblogic classes on the client-side. You'd be
better off developing your ejb in wls.
-- Rob
Troy Lejuan Harris wrote:
Hello,
I need to connect to an EJB running on a company's REMOTE Weblogic
appserver. I have done so using normal class files but now I wish to
use an
EJB to do so. I am using Jboss but am getting errors from Jboss sayingthat
it cannot find certain files. Should I be able to connect to the remote
Weblogic server simply by giving JBOSS the url/t3 of it? This is what Iam
doing in the JBOSS deployed ejb:
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, "t3://xxx.xxx.xx.xx");
InitialContext ctx = new InitialContext(properties);
should I just be using JBOSS context factory in my bean code or do Ineed
weblogic's? Doing this the way I am above, Jboss says it cannot find
"weblogic.jndi.WLInitialContextFactory". So I jared up the parentdirectory
inserting it into jboss and the next time it told me it couldn't find
com.java.util.collections.ArrayList. So I jarred up the com directoryfrom
weblogic and gave jboss access to it. I now get a classnotfound for aclass
which IS contained in the com directory which is now available to Jboss.
This tells me that I am going about this THE WRONG WAY. If anyone canhelp
or point me to a tutorial telling me how I can use another appserver to
connect to a remote Weblogic Server I would greatly appreciate it.
Troy Harris

Similar Messages

  • Connecting to a database from another computer...

    hi guys!
    i just wonder if there is a simple way to connect to my database from another computer?
    do you have to change something in this method?
        private static Connection getConnection() {     Connection con = null;     try {         Class.forName("com.mysql.jdbc.Driver");         String url = "jdbc:mysql://localhost/Movies";         String user = "root";         String pw = "x";         con = DriverManager.getConnection(url, user, pw);         System.out.println("****Connected****");     }     catch (ClassNotFoundException e)     {         System.out.println(e.getMessage());           System.out.println("1");         System.exit(0);     }     catch (SQLException e) {         System.out.println(e.getMessage());           System.out.println("2");           System.exit(0);     }         return con;     }
    thanks! :)
    Edited by: Shaor-1 on Dec 22, 2008 3:47 AM

    hey!
    is there no one who knows how to do this?
    Here is my program that i want to change so it can connect to my mysql database but from another computer.
    import java.sql.*;
    import java.text.NumberFormat;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    public class ListMovies {
            static String exist = "existed";
        static int ye = 2221;
        static double pr = 21.12;
    public static void main (String[] args) throws InterruptedException {
    go();
    public static void go(){
           NumberFormat cf = NumberFormat.getCurrencyInstance();
        for(int i = 0; i < 1; i--){
        ResultSet movies = getMovies();
        try
            while (movies.next()){
                Movie m = getMovie(movies);
                String msg = Integer.toString(m.year);
                msg += ": " + m.title;
                msg += " (" + cf.format(m.price) + ")";
                System.out.println(msg);
              Thread.sleep(1000*10);
                catch (InterruptedException ex) {
                    Logger.getLogger(ListMovies.class.getName()).log(Level.SEVERE, null, ex);
                }    catch (SQLException e)
            System.out.println(e.getMessage());
    public static void loanMovie(String d) {
        Connection con = getConnection();
        try {
            Statement stmt = con.createStatement();
            String insert = "insert into movie "
                    + "(title, year, price) "
                    + "values ("
                    + "\"" + d + "\"" + ", "
                    + ye + ", " + pr +");";
            int i =stmt.executeUpdate(insert);
            if (i == 1){
                System.out.println("Loan recorded");
            else
                System.out.println("Loan not recorded");    
        catch (SQLException e){
            System.out.println(e.getMessage());
            System.out.println("CRAP"); 
    private static ResultSet getMovies()
        Connection con = getConnection();
        try {
            Statement s = con.createStatement();
            String select = "Select title, year, price " +
                    "from movie order by year";
            ResultSet rows;
            rows = s.executeQuery(select);
            return rows;
        catch (SQLException e)
            System.out.println(e.getMessage());
        return null;
        private static Connection getConnection() {
         Connection con = null;
         try {
             Class.forName("com.mysql.jdbc.Driver");
             String url = "jdbc:mysql://localhost/Movies";
             String user = "root";
             String pw = "x";
             con = DriverManager.getConnection(url, user, pw);
             System.out.println("****INFO****");
         catch (ClassNotFoundException e)
             System.out.println(e.getMessage());
               System.out.println("1");
             System.exit(0);
         catch (SQLException e) {
             System.out.println(e.getMessage());
               System.out.println("2");
              System.exit(0);
            return con;
        private static Movie getMovie(ResultSet movies) {
            try {
                String title = movies.getString("Title");
                int year = movies.getInt("Year");
                double price = movies.getDouble("price");
                return new Movie(title, year, price);
            catch (SQLException e)
            System.out.println(e.getMessage());   
            return null;
        private static class Movie
            public String title;
            public int year;
            public double price;
            public Movie(String title, int year, double price)
                this.title = title;
                this.year = year;
                this.price = price;
    BTW_
    my computers ip is: 81.229.40.17
    the database is on that computer.
    thanks!

  • Calling EJB from another EJB

    I need to make a several calls to the methods inside EJB1 from EJB2. I was getting
    the remote reference of the EJB2 inside the ejbCreate() of the EJB1, is it a good
    practice ?? If not, do I need to get remote reference of the EJB2 every time I
    need to call EJB2 method??
    Thanks in advance.

    To refer a Ejb from another Ejb include <ejb-ref> in ejb-jar.xml
    <session>
    <ejb-name>Ejb1</ejb-name>
    <ejb-ref>
    <ejb-ref-name>Ejb2</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>com.ejb.Ejb2Home</home>
    <remote>com.ejb.Ejb2</remote>
    </ejb-ref>
    <session>
    Include a <reference-discriptor> in weblogic-ejb-jar.xml
    <weblogic-enterprise-bean>
    <ejb-name>EjbSession</ejb-name>
    <reference-descriptor>
    <ejb-reference-description>
    <ejb-ref-name>Ejb2</ejb-ref-name>
    <jndi-name>com.ejb.Ejb2Home</jndi-name>
    </ejb-reference-description>
    </reference-descriptor>
    </weblogic-enterprise-bean>
    In Ejb1 bean class refer to Ejb2 method with a remote reference to Ejb2.
    InitialContext initialContext = new InitialContext();
    Ejb2Home ejb2Home = (Ejb2Home)initialContext.lookup("com.ejb.Ejb2Home");
    Ejb2 ejb2 = ejb2Home.findByPrimaryKey();
    Alex Pratt wrote:
    I need to make a several calls to the methods inside EJB1 from EJB2. I was getting
    the remote reference of the EJB2 inside the ejbCreate() of the EJB1, is it a good
    practice ?? If not, do I need to get remote reference of the EJB2 every time I
    need to call EJB2 method??
    Thanks in advance.

  • Connect to Oracle 9i from another User

    I have Oracle 9i Installed on my machine and works fine.
    But I can not connect to to it from another user on the same machine (That has a domain other than my machine)
    How I can solve this?
    (Both users have Adminstrator rights)

    One post please.
    Limited Info would lead me to respond that you should try the:
    . oraenv script in a bash shell. But there could be many other problems...

  • Connecting a KM repository from another portal to KM via WebDAV - meda data

    Hello there,
    we are evaluating the option of connecting a KM repository from another portal to KM via WebDAV in our Federated Portal Scenario (in fact, we wish to get rid of the the remote roles as soon as possible).
    This can be accomplised as described here [Connecting a KM repository from another portal to KM via WebDAV|https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/2783].
    Or for BI as described in Note 969040 - Federated portal network and Information Broadcasting .
    One question : in case meta- data properties are set, where are these stored? In the consumer portal, or in the source system, the producer portal?
    I.e when I set properties on documents of the WebDav repository, and I go to the source system, will the same meta- data properties be set there?
    Many thanks!

    For testing I've integrated the remote KM repository as WebDAV and enabled the properties repository service :
    - custom meta- data defined on the source (producer) KM system is not visible in the consumer portal if no value has been set on the source system :
    Let's say you have a property 'country' on the source system, define a value for it + save, you can view the property in the consumer system.
    - if you define both the same properties in consumer & producser system, you can view the properties in both system, and the value set in either one of the systems is displayed in both of them.
    In short : the custom meta-data properties need to be defined on both systems

  • Error in calling an EJB from another EJB

    Hello All,
    I have a scenario where i need to call a method of an ejb from another ejb.
    Both the EJB's are in different DC's.
    EG: DC1 using DC2
    I have added the public part of DC2 in DC1.
    The following code is written in DC1 to access the EJB of DC2
          MyRemote l_remote;
           MyHome l_home;
           InitialContext l_ctx = new InitialContext();
    >>       l_home = (MyHome)l_ctx.lookup("JNDI Name");
           l_remote = (MyRemote)l_home.create();
    There is no error at build time and deploy time, but at run time "MyHome" class is not found.
    Even i am not able to access the helper class defined in the DC2 at runtime.
    Please help.
    Thanks in Advance

    First off, wrong forum section.
    Check if your JNDI name is correctly placed for the bean you're calling -- check j2ee-engine.xml for that. Check the EJB container if the ear file you deployed is there and updated.
    Try placing  "localejbs/JNDI name" on your lookup parameter.
    Regards,
    Jan

  • Using EJB from another connection pool in WLPI

    Hi All,
    I've deployed an entity bean (CMP) which used the connection pool other than the
    one used by WLPI. When I execute the business operation I've defined for this
    bean, the following exception is encountered:
    "Couldn't get connection: java.sql.SQLException: Connection has already been created
    in this tx context for pool named wlpiPool. Illegal attempt to create connection
    from another pool: oraclePool"
    Is there any other alternative for me to use the entity bean in WLPI?
    Thanks,
    Fred

    Instead of using mulitiple connection pool,we are using single connection pool.
    Our one application, accessing remote db also, for that we are using simple jdbc
    connection. No pool.
    We also tried OracleXAdriver. In that case, at the time of startup we are getting
    weird error.
    Thanks
    JIgnesh Patel
    "Fred" <[email protected]> wrote:
    >
    I simply turned all my CMP to BMP and get the connection from another
    connection
    pool. But that was not what I want. Is there any method that allows a
    CMP to use
    connection pool other than the wlpiPool pool in WLPI?
    Thanks
    "jignesh" <[email protected]> wrote:
    Hi Fred,
    We are also getting same error. How did you resolve this error ?
    I'd appreciate,if you can post resolution of this error.
    Thanks
    Jignesh Patel
    "Fred" <[email protected]> wrote:
    Hi All,
    I've deployed an entity bean (CMP) which used the connection pool other
    than the
    one used by WLPI. When I execute the business operation I've defined
    for this
    bean, the following exception is encountered:
    "Couldn't get connection: java.sql.SQLException: Connection has already
    been created
    in this tx context for pool named wlpiPool. Illegal attempt to create
    connection
    from another pool: oraclePool"
    Is there any other alternative for me to use the entity bean in WLPI?
    Thanks,
    Fred

  • How to Call one EJB from another

    Hi all
    I am trying to call one EJB in one system from another EJB residing on diferent system...
    Both are Stateless session beans ...
    I can't use No-args Intialcontext() as i need to specify the Ip address of other system to be looked up.....
    So i am using properties Dorg.omg.CORBA.ORBInitlalHost....
    But its not looking up..Its telling not bound...But i called it from standalone client remotely...
    Am i wrong..?
    I hope I am in right path....
    I hope ill get reply as fast as possible...
    Gopal V

    Hi ken Thanks for replying....
    Ya i packed it as a jar (using Export tool in Eclipse3.2)....
    I am using SUN AS 9.....
    I packed bean1 and bean2 as two different jars in the same domain...
    Here is my code...
    Bean1:
    @Stateless(mappedName="ejb/Second")
    public class SecondIMPL implements SecondRemote {
         public FirstRemote obj;
         public String connect() {
              try{
                   InitialContext ctx= new InitialContext();
                   FirstRemote obj =(FirstRemote)ctx.lookup("ejb/First");
                   System.out.println("Client :"+obj.bMethod());
              }catch(Exception e){
                   e.printStackTrace();
              return "Check server Log";
    }Bean2 :
    @Stateless(mappedName="ejb/First")
    public class FirstIMPL implements FirstRemote {
         public String bMethod() {
              return "From First Bean";
    Client:
    public static void main(String[] args) {
              try{
                   InitialContext ctx= new InitialContext();
                   SecondRemote obj =(SecondRemote)ctx.lookup("ejb/Second");
                   System.out.println("Client :"+obj.connect());
              }catch(Exception e){
                   e.printStackTrace();
    Here is my Stack Trace...
    [#|2007-05-24T18:35:17.214+0530|WARNING|sun-appserver-pe9.0|javax.enterprise.system.stream.err|_ThreadID=18;_ThreadName=p: thread-pool-1; w: 19;_RequestID=bb4848e7-829a-421d-a560-93659898eb02;|
    javax.naming.NamingException: ejb ref resolution error for remote business interfacecom.SecondRemote[Root exception is java.lang.ClassNotFoundException: com.SecondRemote]
         at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:350)
         at com.sun.ejb.containers.RemoteBusinessObjectFactory.getObjectInstance(RemoteBusinessObjectFactory.java:61)
         at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
         at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:314)
         at javax.naming.InitialContext.lookup(InitialContext.java:351)
         at com.FirstBean.rediff(FirstBean.java:16)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1050)
         at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:165)
         at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2766)
         at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3847)
         at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:190)
         at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:110)
         at $Proxy36.rediff(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:121)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:650)
         at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:193)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1705)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1565)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:947)
         at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:178)
         at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:717)
         at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.dispatch(SocketOrChannelConnectionImpl.java:473)
         at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1270)
         at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:479)
    Caused by: java.lang.ClassNotFoundException: com.Second
         at com.sun.enterprise.loader.EJBClassLoader.findClassData(EJBClassLoader.java:701)
         at com.sun.enterprise.loader.EJBClassLoader.findClass(EJBClassLoader.java:614)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at com.sun.ejb.EJBUtils.getBusinessIntfClassLoader(EJBUtils.java:568)
         at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:320)
         ... 31 more
    |#]

  • Connecting to Remote EJB from Servlet in same application

    Please help!
    I was able to connect to SessionBeans and EJB from my sample java client in OCJ4 but when I try to do same thing from my web application using servlets, I get the below NullPointerException error.
    The JNDI lookup works fine using java client but difficult from a servlet.
    I am sure there is something I am missing.
    Thanks
    This is what I do in the servlet:
    public void init() throws ServletException, NamingException, CreateException, RemoteException
    Context jndiContext = getInitialContext();
    SessionCartEJBHome home = (SessionCartEJBHome)jndiContext.lookup("SessionCartEJBBean");
    sessionEJB = null;
    try{
    sessionEJB = (SessionCartEJB) home.create();
    }catch (Exception e)
    e.printStackTrace();
    private static Context getInitialContext() throws NamingException
    Hashtable env = new Hashtable();
    // Standalone OC4J connection details
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
    env.put(Context.SECURITY_PRINCIPAL, "admin");
    env.put(Context.SECURITY_CREDENTIALS, "admin");
    env.put(Context.PROVIDER_URL, "ormi://Princeton/ejb1");
    return new InitialContext(env);
    And when I call the following procedure, it blow up at the line sessionEJB.getLineItem(new Long(1304));
    sessionEJB is a class variable.
    void processCatalogPage(HttpServletRequest request,
    HttpServletResponse response,
    ActionMapping mapping,
    HttpSession session
    throws ServletException, IOException , Exception, FinderException{
    try {
    ActionForward actFor = null;
    String itemId = request.getParameter("id");
    if ( itemId != null ) {
    String[] itemIds = new String[1];
    itemIds[0] = itemId;
    sessionEJB.getLineItem(new Long(1304));
    actFor = mapping.findForward("catalog");
    return (mapping.findForward("success"));
    } catch (Exception ex)
    ex.printStackTrace();
    System.err.println(ex.toString());
    throw new EJBException(ex.toString());
    04/12/11 23:45:24 java.lang.NullPointerException
    04/12/11 23:45:24 at com.alashoofi.Cart.processCatalogPage(Cart.java:187)
    04/12/11 23:45:24 at com.alashoofi.Cart.execute(Cart.java:86)
    04/12/11 23:45:24 at org.apache.struts.action.RequestProcessor.processActi
    onPerform(RequestProcessor.java:484)
    04/12/11 23:45:24 at org.apache.struts.action.RequestProcessor.process(Req
    uestProcessor.java:274)
    04/12/11 23:45:24 at org.apache.struts.action.ActionServlet.process(Action
    Servlet.java:1482)
    04/12/11 23:45:24 at org.apache.struts.action.ActionServlet.doGet(ActionSe
    rvlet.java:507)
    04/12/11 23:45:24 at javax.servlet.http.HttpServlet.service(HttpServlet.ja
    va:740)
    04/12/11 23:45:24 at javax.servlet.http.HttpServlet.service(HttpServlet.ja
    va:853)
    04/12/11 23:45:24 at com.evermind.server.http.ServletRequestDispatcher.inv
    oke(ServletRequestDispatcher.java:765)
    04/12/11 23:45:24 at com.evermind.server.http.ServletRequestDispatcher.for
    wardInternal(ServletRequestDispatcher.java:317)
    04/12/11 23:45:24 at com.evermind.server.http.HttpRequestHandler.processRe
    quest(HttpRequestHandler.java:790)
    04/12/11 23:45:24 at com.evermind.server.http.HttpRequestHandler.run(HttpR
    equestHandler.java:270)
    04/12/11 23:45:24 at com.evermind.server.http.HttpRequestHandler.run(HttpR
    equestHandler.java:112)
    04/12/11 23:45:24 at com.evermind.util.ReleasableResourcePooledExecutor$My
    Worker.run(ReleasableResourcePooledExecutor.java:192)
    04/12/11 23:45:24 at java.lang.Thread.run(Thread.java:534)
    04/12/11 23:45:24 java.lang.NullPointerException
    Dec 11, 2004 11:45:24 PM org.apache.struts.action.RequestProcessor processExcept
    ion
    WARNING: Unhandled Exception thrown: class javax.ejb.EJBException

    Avi,
    Thanks for your response. I am actually returning a new InitialContext in a function call in the servlet. What I have noticed though is that JDeveloper creates two ear files for the application. One for the ejbs called ejb1.ear and another for the web files webapp1.ear. These are located in the applications subdirectory in OC4J directory.
    I know I have two projects in the application, model and viewController. I am just trying to follow the MVC pattern.
    In short, I don't think the web and the ejbs are in same ear file. I made the web project depend on the ejbs though. There is an option to set such. I don't know how to tell JDeveloper to put them all in one ear file.
    I will appreciate any suggestion.
    Thanks
    Matilda

  • How tom invoke an EJB from another EJB using the sun rmi protocl in Weblogi

    Hi,
    I am particularly new to EJB.
    My scenario is
    client invoking-->EJB-----invoking ----(Either a webService or an EJB)
    in WEBLOGIC
    Is it possible that a call from EJB to another EJB or WebService use Sun's RMI as underlying protocol instead of t3 or IIOP which are used in Weblogic ?
    Would be really a great help if you could provide me some sample on it on weblogic.

    Hi Stefan,
    You don't need to provide the InitialContextFactory for running a standalone client. The following should work just fine:
    Context initial = new InitialContext();
    System.out.println("Looking up ...");
    Object objref = initial.lookup(EJB);  //the lookup name should be a global JNDI name      //and not from the java:comp namespace
    System.out.println("Looked up EJB");The JNDI implementation looks for the jndi.properties file in your classpath. So make sure that you have the appserv-rt.jar from your <server_installation>/lib directory in your classpath.
    HTH,
    Sheetal

  • Monitoring EJB from another application

    Hi!
    Let's say: We have some EJB deployed of Application Server. Each EJB (doesn't metter if session or entity) has its methods that can be called. (All EJB are in the same application)
    Can I from another application see what methods has been called and at what time? I can extend monitored application with its log files, but want to use application to be monitored as is.
    I guess it depends on Application Server functionality. I would like to do it on SUN reference implementation (from J2EE SDK). If there is another App Server (the best free one) please note.
    I would be very thankfull for any answer.
    Marcin

    You could use the opensource EJB-container JBOSS and modify the source to perform logging of when a particular method was called etc.
    This will enable you to run the application as is with no modifications.
    Morten.

  • Connect to oracle xe from another machine

    How i can set oracle xe for connect from another machine
    i can connect with :
    sqlplus system/pass@xe
    listener and tnsnames are fine
    on base machine, but I can't do it from another machine
    i can't do it with html db (from browser), too
    ist it possible and how ?

    Do you have updated the tnsnames.ora file on your client box before you have tried to access the remote machine? Can you please post the error message you receive.
    If you have set the TNSNAMES.ora please try to resolve the remote database with TNSPING.. Can you also please post the results of this?

  • HELP!!! How I can call to EJB from another EJB??

    I have two EJBs, for each EJB I have a jar, how I can call to EJB jar to another???
    I have tried the following, in the first EJB I have import the second EJB jar and call it with context, lookup, PortableRemoteObject etc.. but the instruction lookup not find the second EJB reference.
    The name in the lookup instruction is the JNDI name of the second EJB but not find a reference to it.
    Please help me!!! Thanks!!
    The error is:
    javax.naming.NameNotFoundException: Missing node. Root exception is org.omg.CosNaming.NamingContextPackage.NotFound
         at org.omg.CosNaming.NamingContextPackage.NotFoundHelper.read(NotFoundHelper.java:34)
         at org.omg.CosNaming.NamingContextPackage.NotFoundHelper.extract(NotFoundHelper.java:50)
         at org.omg.CosNaming._NamingContextStub.resolve(_NamingContextStub.java:161)
         at com.inprise.j2ee.jndi.java.CorbaContext.resolveName(CorbaContext.java:242)
         at com.inprise.j2ee.jndi.java.CorbaContext.lookup(CorbaContext.java:261)
         at com.inprise.j2ee.jndi.java.javaContext.internal_lookup(javaContext.java:483)
         at com.inprise.j2ee.jndi.java.javaContext.internal_lookup(javaContext.java:493)
         at com.inprise.j2ee.jndi.java.javaContext.internal_lookup(javaContext.java:493)
         at com.inprise.j2ee.jndi.java.javaContext.lookup(javaContext.java:937)
         at com.inprise.j2ee.jndi.java.javaContext.lookup(javaContext.java:942)
         at javax.naming.InitialContext.lookup(InitialContext.java:350)
         at ejbclient.EnterpriseClientBean.addition(EnterpriseClientBean.java:115)
         at ejbclient.EnterpriseClientBean.actionPerformed(EnterpriseClientBean.java:97)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
         at avax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstr

    ok.. Here it goes.. I am writing a sample code..
    public class EJB1LogBean implements SessionBean {
    // test is a method of stateless session beam
    public void test ( TestVal val )
    throws RemoteException{
    try {
    EJB2LogHome ejb2Home= (EJB2LogHome)getHome("java:comp/env/ejb/EJB2LogHome",1);
    EJB2Log ejb2Log = ejb2LogHome.create ( val );
    } catch ( CreateException e ) {
         System.out.println("Create Exception occurred ");
         e.printStackTrace();
         } catch ( RemoteException e ) {
         System.out.println( "RemoteException Occured");
    e.printStackTrace();
         throw new RemoteException () ;
         } catch(Exception ee) {
    ee.printStackTrace();
    private EJBHome getHome(String jndiName,int type) {
    try {
    Context context = new InitialContext();
    Object ref = context.lookup( jndiName );
    switch(type)
    case 1:
    EJB2LogHome ejb2LogHome = ( EJB2LogHome )
    PortableRemoteObject.narrow( ref, EJB2LogHome.class );
    return ejb2LogHome;
    } catch ( Exception e ) {
    e.printStackTrace();
    return null;
    }//EJB1LogBean ends
    Here as you can see, EJB1LogBean(session bean) is calling a second EJB, EJB2LogBean (entity bean). TestVal is a sample value object passed. It is plain java class and can vary from app to app and it has got nothing to do with ejbs.
    "java:comp/env/ejb" is a J2EE standard and while getting a home interface, you have to append the home interface class name to "java:comp/env/ejb". Here I am passing "java:comp/env/ejb/EJB2LogHome" and "1" to getHome method, whose job is to get a reference to a home interface. getHome method is a local method. "1" is passed just to give a flexibility to getHome method as you can have more ejbs to invoked. In that case, you can go on adding different case statements for 2, 3 etc.
    The only thing you have to keep in mind is that your deployment descriptor for EJB1LogBean will contain the entires for both the beans i.e. for EJB1LogBean and EJB2LogBean. This is because EJB2LogBean is wrapped by EJB1LogBean.
    Hope this helps.
    Please let me know if you need anything more.
    - Amit

  • Can not lookup EJB from another EAR file, the ClassCastException returned

    Hi,
         I try to call EJB module in A.ear from Servlet in another EAR file(B.ear) the ClassCastException returned on the context.lookup() code . So when i create a Dynamic Web Project(With the same code as Servlet in B.ear) and pack it in A.ear(The same EAR file with EJB module), it work fine. I have no idea. Could you please suggest me.
    The ClassCastException : incompatible with interface ..... return on
    HelloManBeanLocalHome home=(HelloManBeanLocalHome) ctx.lookup("localejbs/sap.com/HelloMan_EAR/HelloManBean");
    The entire code is below :
              try {               
                   InitialContext ctx=new InitialContext();
                   HelloManBeanLocalHome home=(HelloManBeanLocalHome) ctx.lookup("localejbs/sap.com/HelloMan_EAR/HelloManBean");
                   HelloManBeanLocal remote=home.create();
                   lookupText=remote.helloMan("Test");
              } catch (Exception e) {
                   // TODO: handle exception
                   e.printStackTrace(out);
    Many Thanks

    Hi Saleem Mohammad.
               Thank a lot for your post. I got this idea from your link. The below code work fine.
              try {               
                   InitialContext ctx=new InitialContext();
                   Object obj= ctx.lookup("localejbs/sap.com/HelloMan_EAR/HelloManBean");
                    ClassLoader homeCl = obj.getClass().getClassLoader();
                    Class<?> localHome = homeCl.loadClass(HelloManBeanLocalHome.class.getCanonicalName());
                    java.lang.reflect.Method method = localHome.getMethod("create");               
                    Object homeObj = (Object)method.invoke(obj);
                    ClassLoader localCl=homeObj.getClass().getClassLoader();
                    Class<?> local = localCl.loadClass(HelloManBeanLocal.class.getCanonicalName());
                    Class  args[] = {String.class};
                    java.lang.reflect.Method localMethod=local.getMethod("helloMan",args);               
                    Object params[]={"Thongie"};
                    Object localObj = (Object)localMethod.invoke(homeObj,params);
                    lookupText=(String)localObj;               
              } catch (Exception e) {
                   // TODO: handle exception
                   e.printStackTrace(out);

  • How to call an EJB from another EJB

    Hi
    I have a problem here. I need to execute a second EJB which has to get the input from the first EJB as data for execution. So when I call the first EJB, the first EJB should give the data to the second EJB and execute it and provide the result.
    Cheers,
    Raj

    ok.. Here it goes.. I am writing a sample code..
    public class EJB1LogBean implements SessionBean {
    // test is a method of stateless session beam
    public void test ( TestVal val )
    throws RemoteException{
    try {
    EJB2LogHome ejb2Home= (EJB2LogHome)getHome("java:comp/env/ejb/EJB2LogHome",1);
    EJB2Log ejb2Log = ejb2LogHome.create ( val );
    } catch ( CreateException e ) {
         System.out.println("Create Exception occurred ");
         e.printStackTrace();
         } catch ( RemoteException e ) {
         System.out.println( "RemoteException Occured");
    e.printStackTrace();
         throw new RemoteException () ;
         } catch(Exception ee) {
    ee.printStackTrace();
    private EJBHome getHome(String jndiName,int type) {
    try {
    Context context = new InitialContext();
    Object ref = context.lookup( jndiName );
    switch(type)
    case 1:
    EJB2LogHome ejb2LogHome = ( EJB2LogHome )
    PortableRemoteObject.narrow( ref, EJB2LogHome.class );
    return ejb2LogHome;
    } catch ( Exception e ) {
    e.printStackTrace();
    return null;
    }//EJB1LogBean ends
    Here as you can see, EJB1LogBean(session bean) is calling a second EJB, EJB2LogBean (entity bean). TestVal is a sample value object passed. It is plain java class and can vary from app to app and it has got nothing to do with ejbs.
    "java:comp/env/ejb" is a J2EE standard and while getting a home interface, you have to append the home interface class name to "java:comp/env/ejb". Here I am passing "java:comp/env/ejb/EJB2LogHome" and "1" to getHome method, whose job is to get a reference to a home interface. getHome method is a local method. "1" is passed just to give a flexibility to getHome method as you can have more ejbs to invoked. In that case, you can go on adding different case statements for 2, 3 etc.
    The only thing you have to keep in mind is that your deployment descriptor for EJB1LogBean will contain the entires for both the beans i.e. for EJB1LogBean and EJB2LogBean. This is because EJB2LogBean is wrapped by EJB1LogBean.
    Hope this helps.
    Please let me know if you need anything more.
    - Amit

Maybe you are looking for