EJB or JSP

Hi, I am trying to develop an application where the task is to search the underlying database tables based on web based user input (multi-user environment) and display the results back. One possible approach I could think of is to have my JSP pages do the connection pooling, database lookup etc. and display the results back to the browser and the other approach is to use EJBs. In the second approach my JSP pages are just clients to the EJBs and EJBs perform the actual business logic and database retrieval. Now my question... Which of the above two appraoches is more feasible? What are the advantages/disadvantages of using one over the other?? Does use of EJBs cause an extra overhead and result in poor performance?? In future we might extend the application for even database updates and inserts. Please let me know your thoughts. Thanks..

My two cents: If you are trying to code for reuse and maintainability, you follow the MVC (model, view, controller) paradigm and you cleanly separate the layers of applications. In this scheme, the view knows NOTHING about where the data came from to display on the screen. The data access mechanism has no knowledge of HOW the data it supplies is going to be used, etc. The obvious advantage of this is that this loose coupling of layers allows a developer to CHANGE the specifics of one layer without forcing the other layers to change. For instance, if you move data from one database table to another one and you have 40 JSP pages that all use this data, if they each directly access the DB, all pages have to be modified for the change. And if the pages all use a connection pool and the connection pool changes, you still modify all the pages. Instead, if all the pages simply ask some Java object (a simple class, a Session Bean, controller, etc.) to get the data they desire (i.e., "getCustomerAddress(aCust)"), then no matter where the data moves or what connection pool changes occur, none of the JSP pages has to change and be tested again.
Of course, the tradeoff is performance. There is no free ride. For most business applications today, the main concern is flexibility and rapid change. So the clean separation of layers and coding for maintainability is usually a winner. However, there will always be places in the app where you might have very critical timing/performance issues. So FOR THOSE PLACES, you might want to use alternative methods of accessing and saving data.
It should not be ALL or NONE. As you architect the application, you decide where the bottlenecks will be, where the most frequent changes are likely to occur in the business logic, and you design accordingly to give the users maximum performance AND adaptability.
That's my take on it.
Dave

Similar Messages

  • Calling EJB from JSP in SSL Mode

    Hi,
    I need to call an EJB from JSP in SSL Mode.
    How can i do that.
    Regards,
    S.V.Satish Kumar

    In that case you can refer to the following documents:
    Using JPA: http://help.sap.com/saphelp_nwce711/helpdata/en/44/eba6292f446c30e10000000a114a6b/frameset.htm
    Accessing persistence functionality in EJB 3.0: http://help.sap.com/saphelp_nwce711/helpdata/en/46/307a2a50094f09e10000000a114a6b/frameset.htm
    Tell me, if these documents help you. Otherwise, I will search for more information on the topic.
    Best regards,
    Ekaterina

  • How to use EJB in JSP...urgent!!!

    hello,
    i am novice programmer in EJB.
    i am using weblogic 6.1 ...
    my problem is how to use EJB in jsp page.
    my code is as follow..but its not displaying any result.
    <%@ page import="javax.naming.InitialContext,
    javax.naming.Context,
    java.util.Properties,
    firstEJB.First,
    firstEJB.FirstHome"%>
    <%
         long t1 = System.currentTimeMillis();
         System.out.println(t1);
         Properties props = new Properties();
         p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.TengahInitialContextFactory");
         props.put(Context.PROVIDER_URL, "localhost:7001");
         Context ctx = new InitialContext(props);
         FirstHome home = (FirstHome)ctx.lookup("FirstEJB");
         First bean = home.create();
         String time = bean.getTime();
         bean.remove();
         ctx.close();
         long t2 = System.currentTimeMillis();
    %>
    <html>
         <head>
              <style>p { font-family:Verdana;font-size:12px; }</style>
         </head>
         <body>
              <p>Message received from bean = "<%= time %>".<br>Time taken :
              <%= (t2 - t1) %> ms.</p>
         </body>
    </html>
    please tell me the solution.

    Hi, I don't know if it may be the cuase of your problems, but you should narrow the Object obtained doing the lookup, like this:
    FirstHome home = (FirstHome) PortableRemoteObject.narrow(ctx.lookup("FirstEJB"), FirstHome.class);

  • How to master good design with EJB and JSP?

    I use JSP to calling EJB. But the .jsp file is complex and it's difficult to maintain...I just want to work higher efficent with EJB,JSP and JavaBean. I want to know is there a good design with EJB and JSP? and is there any good material about MVC for EJB,JSP and JavaBean?

    You should read the J2EE blueprint available on this website. Better download the PDF, and print it for yourself so you can read it anytime.

  • HOW can I call EJB with JSP?

    Hi, I'm working with JSP and want to include some EJB. I dont know how can I access EJB through JSP. I dont know if I use the right code in JSP for calling EJB. Did someone know how to use that? Can someone tell me if is the right code in JSP in my example?
    Thanks, Kristjan
    THIS IS THE JSP: (useejb.jsp)
    <%@ taglib uri="http://xmlns.oracle.com/j2ee/jsp/tld/ojsp/ejbtaglib.tld" prefix="EJB" %>
    <%@ page import="mypackage1.MySessionEJB" %>
    <%@ page import="mypackage1.MySessionEJBHome" %>
    <%@ page import="mypackage1.impl.MySessionEJBBean" %>
    <HTML>
    <head><TITLE>USEBEAN</TITLE></head>
    <body>
    <EJB:useHome id="mySessionEJBHome" type="mypackage1.MySessionEJBHome" location="java:comp/env/ejb/mySessionEJB" local="false" />
    <EJB:useBean id="mySessionEJBBean" type="mypackage1.impl.MySessionEJBBean" local="false">
    <EJB:createBean instance="<%=mySessionEJBHome.create() %>" />
    </EJB:useBean>
    <%= mySessionEJBBean.calc() %>
    </body>
    </html>
    THIS IS THE EJB CODE:(MySessionEJBBean.java)
    package mypackage1.impl;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import java.lang.String.*;
    public class MySessionEJBBean implements SessionBean
    public void ejbCreate(){}
    public void ejbActivate(){}
    public void ejbPassivate(){}
    public void ejbRemove(){}
    public void setSessionContext(SessionContext ctx){}
    public String calc(String value)
    return value + value;
    public String zanka(String x)
    return x;
    (MySessionEJB.java)
    package mypackage1;
    import javax.ejb.EJBObject;
    import java.rmi.RemoteException;
    public interface MySessionEJB extends EJBObject
    public String calc(String value) throws RemoteException;
    String zanka(String x) throws RemoteException;
    (MySessionEJBHome.java)
    package mypackage1;
    import javax.ejb.EJBHome;
    import java.rmi.RemoteException;
    import javax.ejb.CreateException;
    public interface MySessionEJBHome extends EJBHome
    public MySessionEJB create() throws RemoteException, CreateException;
    }

    You might want to look at using a Java Bean wrapper, this can be done automically using WebSphere. It creates what is called an access bean which the JSP imports.
    HTH,
    J.Clancey

  • TagLib created by EJB to JSP Integration Tool

              Hi, I've an EJB deployed on WebLogic 6.1 and I'm using WebLogic's EJB to JSP Integration
              Tool to create JSP Tag Libraries.
              I've written a jsp look like this.
              <%@ taglib uri="WEB-INF/abc-tags.tld" prefix="abc" %>
              

    In web.xml include a <taglib> element
              taglib>
              <taglib-uri>/abc-tags</taglib-uri>
              <taglib-location>WEB-INF/abc-tags.tld</taglib-location>
              </taglib>
              Gary Tam wrote:
              > Hi, I've an EJB deployed on WebLogic 6.1 and I'm using WebLogic's EJB to JSP Integration
              > Tool to create JSP Tag Libraries.
              > I've written a jsp look like this.
              >
              > <%@ taglib uri="WEB-INF/abc-tags.tld" prefix="abc" %>
              

  • Re: Accessing EJB through JSP

              Can anyone guide me to a tuorial thru which I can learn how to invoke EJBs thru
              JSP pages.
              Thanks..Kevin
              

    EJB to JSP Integration
              http://edocs.bea.com/wls/docs61/jsp/ejb2jsp.html
              Kevin wrote:
              > Can anyone guide me to a tuorial thru which I can learn how to invoke EJBs thru
              > JSP pages.
              >
              > Thanks..Kevin
              

  • Pls. help me out..Accessing ejb through jsp

    hi all,
    I am running my ejb on the j2sdkee.1.2.1 and jdk1.3 on Windows 2000. I am facing a problem while accessing the ejb from the jsp page. Its running fine when accessing through a client application. The following is the error when I try to access it using:
    http://localhost:8000/first/FirstEJB.jsp
    Error: 500
    Internal Servlet Error:
    org.apache.jasper.JasperException: Unable to compile class for JSP
         at org.apache.jasper.runtime.JspLoader.loadJSP(JspLoader.java:287)
         at org.apache.jasper.runtime.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:137)
         at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:148)
         at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:247)
         at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:352)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
         at org.apache.tomcat.core.ServiceInvocationHandler.method(ServletWrapper.java:626)
         at org.apache.tomcat.core.ServletWrapper.handleInvocation(ServletWrapper.java:534)
         at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:378)
         at org.apache.tomcat.core.Context.handleRequest(Context.java:644)
         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:440)
         at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:144)
         at org.apache.tomcat.service.TcpConnectionThread.run(TcpEndpoint.java:310)
         at java.lang.Thread.run(Thread.java:484)
    Root cause:
    java.lang.NullPointerException
         at java.io.File.(File.java:181)
         at org.apache.jasper.compiler.JspCompiler.computeClassFileData(JspCompiler.java:285)
         at org.apache.jasper.compiler.JspCompiler.getClassName(JspCompiler.java:103)
         at org.apache.jasper.compiler.Compiler.compile(Compiler.java:105)
         at org.apache.jasper.runtime.JspLoader$2.run(JspLoader.java:273)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.jasper.runtime.JspLoader.loadJSP(JspLoader.java:270)
         at org.apache.jasper.runtime.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:137)
         at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:148)
         at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:247)
         at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:352)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
         at org.apache.tomcat.core.ServiceInvocationHandler.method(ServletWrapper.java:626)
         at org.apache.tomcat.core.ServletWrapper.handleInvocation(ServletWrapper.java:534)
         at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:378)
         at org.apache.tomcat.core.Context.handleRequest(Context.java:644)
         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:440)
         at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:144)
         at org.apache.tomcat.service.TcpConnectionThread.run(TcpEndpoint.java:310)
         at java.lang.Thread.run(Thread.java:484)
    The name of the jsp file is FirstEJB.jsp
    The name of the ear file is FirstEJB - Stateless Session Bean
    The name of the WAR File is FirstWAR
    I have created a Web Component named first
    Can anyone tell me how to access the ejb using jsp?
    Thanks,
    ajit

    Hello all,
    Sorry for the trouble. I got the mistake..I had not given the context in the deploytool..
    Thanks,
    ajit

  • How to understand EJB and JSP

    just now i read some articles about EJB and it make me a little confused in what i have understood about EJB and JSP ( at least i thought i understood them, but now ....()
    1. i found that in most JSP examples, the javabeans are used but not the EJB, right? so i have a qustion, an EJB can be used in JSP or not? and how if it can? why if it can not?
    ...still have a lot of question ....
    thanks a lot

    Hi,
    1. i found that in most JSP examples, the javabeans
    are used but not the EJB, right? so i have a qustion,
    an EJB can be used in JSP or not? and how if it can?
    why if it can not?It can be there for more of the examples,but you can invoke the EJB from the JSP also .Actual EJB is entirely the different concept whose foundation is build on the Distributed Technology.I advice you to read the Mastering EJB which is freely available at http://theserverside.com
    before starting coding.The EJB is a vast concept and requires time and strong core foundation to understand,once it is clear then you understand it true potential...
    ...still have a lot of question ....You queries are welcome here!!!
    regards
    Vicky

  • Propagation of ctx between EJB and JSP

    Hello,
    Does anybody know how to propagate the Security
    Context between EJB and JSP so that when I login in my JSP page the user will be after recognized in my EJB system ?
    Thanks
    Francesco

    try this...as a test..
    take a simple Contact ejb (as simple as you can make it, just a name and email address). In the ejb-jar.xml set up a role, for example, user, and restrict the access to only this role for all methods.
    try to access the ejb from a jsp, and you should get the login form identified in your web.xml file.
    make sure that the ejb is noted in the web.xml file, also.
    this should work...
    no try this...identify a role in your web.xml file, (user, for example) and restrict the access to the a particular jsp which is not calling the ejb. IF you navigate to this jsp, you should get the login prompt...
    this should work....
    now the tough part
    in your application.xml create a role with the same name, user. By doing this, you have created a global role, and connect the two together.
    Now point your browser to the restricted jsp with no calls to the ejb...you should get the login, so login in.
    now navigate to your jsp which is unrestricted, but calls the restricted ejb...
    there should now be no login prompt.
    This should work.

  • Calling an EJB from jsp - ServletException

    I am unable to call an EJB from jsp, unless I put the actuall classes of
              the EJB into the classpath. Is this the right way to do it?
              The exception is:
              Servlet failed with ServletException
              javax.servlet.ServletException: Servlet class: 'jsp_servlet._result'
              could not be loaded - the requested class wasn't found in the
              classpath:
              '/local/apps/bea/wlserver6.0/config/gmodomain/applications/.wl_temp_do_not_delete/wl_local_comp34107.war:/local/apps/bea/wlserver6.0/./config/gmodomain/applications/.wl_temp_do_not_delete/WEB-INF/_tmp_war_gmo_gmo_webwar:/local/apps/bea/wlserver6.0/config/gmodomain/applications/.wl_temp_do_not_delete/WEB-INF/_tmp_war_gmo_gmo_webwar'
              at
              weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:532)
              at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:191)
              at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:148)
              at
              weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:306)
              at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:208)
              at
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:246)
              at
              weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1265)
              at
              weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1622)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              where result.jsp is the jsp page calling the EJB. I did an import of the
              EJB classes in the jsp.
              like i said, it works if I put the bean classes in the classpath. But is
              it right?
              if I have these in the exploded format, do I need to put anything in the
              application web.xml under:
              wlserver6.0/config/gmodomain/applications/DefaultWebApp_gmo/WEB-INF ?
              redhat 6.2, wl6.0sp1
              here are the xml files:
              web.xml:
              <?xml version="1.0"?>
              <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
              2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
              <!--
              $Id: web.xml,v 1.2 2001/03/14 22:23:03 jeff Exp $
              $Source:
              /usr/local/cvsroot/JUnitEE/example/components/web-war/WEB-INF/web.xml,v
              $
              -->
              <web-app>
              <display-name>My Web Application</display-name>
              <description>none</description>
              <ejb-ref>
              <ejb-ref-name>MyWeb</ejb-ref-name>
              <ejb-ref-type>Session</ejb-ref-type>
              <home>com.blah.ejb.myweb.WyWebHome</home>
              <remote>com.blah.ejb.myweb.MyWeb</remote>
              </ejb-ref>
              </web-app>
              weblogic.xml:
              <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web
              Application 6.0//EN"
              "http://www.bea.com/servers/wls600/dtd/weblogic-web-jar.dtd">
              <weblogic-web-app>
              <jsp-descriptor>
              <jsp-param>
              <param-name>
              pageCheckSeconds
              </param-name>
              <param-value>
              1
              </param-value>
              </jsp-param>
              <jsp-param>
              <param-name>
              verbose
              </param-name>
              <param-value>
              true
              </param-value>
              </jsp-param>
              <jsp-param>
              <param-name>compileCommand</param-name>
              <param-value>/local/apps/jdk1.3.0_02/bin/javac</param-value>
              </jsp-param>
              </jsp-descriptor>
              <reference-descriptor>
              <ejb-reference-description>
              <ejb-ref-name>MyWeb</ejb-ref-name>
              <jndi-name>MyWeb</jndi-name>
              </ejb-reference-description>
              </reference-descriptor>
              </weblogic-web-app>
              thanks,
              Gary
              

    Did you package your JSPs in a WAR and your EJBs in a JAR and package the
              WAR and JAR in an EAR? That is how to do it in 6.0. Works well.
              Peace,
              Cameron Purdy
              Tangosol, Inc.
              http://www.tangosol.com
              +1.617.623.5782
              WebLogic Consulting Available
              "gmo" <[email protected]> wrote in message
              news:[email protected]...
              > I am unable to call an EJB from jsp, unless I put the actuall classes of
              > the EJB into the classpath. Is this the right way to do it?
              > The exception is:
              > Servlet failed with ServletException
              > javax.servlet.ServletException: Servlet class: 'jsp_servlet._result'
              > could not be loaded - the requested class wasn't found in the
              > classpath:
              >
              '/local/apps/bea/wlserver6.0/config/gmodomain/applications/.wl_temp_do_not_d
              elete/wl_local_comp34107.war:/local/apps/bea/wlserver6.0/./config/gmodomain/
              applications/.wl_temp_do_not_delete/WEB-INF/_tmp_war_gmo_gmo_webwar:/local/a
              pps/bea/wlserver6.0/config/gmodomain/applications/.wl_temp_do_not_delete/WEB
              -INF/_tmp_war_gmo_gmo_webwar'
              >
              > at
              >
              weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.jav
              a:532)
              >
              > at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:191)
              >
              > at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:148)
              >
              > at
              >
              weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:30
              6)
              >
              > at
              >
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
              :208)
              >
              > at
              >
              weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
              :246)
              >
              > at
              >
              weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
              ntext.java:1265)
              >
              > at
              >
              weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
              :1622)
              >
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
              >
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >
              > where result.jsp is the jsp page calling the EJB. I did an import of the
              > EJB classes in the jsp.
              > like i said, it works if I put the bean classes in the classpath. But is
              > it right?
              > if I have these in the exploded format, do I need to put anything in the
              > application web.xml under:
              > wlserver6.0/config/gmodomain/applications/DefaultWebApp_gmo/WEB-INF ?
              >
              > redhat 6.2, wl6.0sp1
              >
              > here are the xml files:
              > web.xml:
              >
              > <?xml version="1.0"?>
              > <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
              > 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
              >
              > <!--
              > $Id: web.xml,v 1.2 2001/03/14 22:23:03 jeff Exp $
              > $Source:
              > /usr/local/cvsroot/JUnitEE/example/components/web-war/WEB-INF/web.xml,v
              > $
              > -->
              >
              > <web-app>
              > <display-name>My Web Application</display-name>
              > <description>none</description>
              > <ejb-ref>
              > <ejb-ref-name>MyWeb</ejb-ref-name>
              > <ejb-ref-type>Session</ejb-ref-type>
              > <home>com.blah.ejb.myweb.WyWebHome</home>
              > <remote>com.blah.ejb.myweb.MyWeb</remote>
              > </ejb-ref>
              > </web-app>
              >
              > weblogic.xml:
              >
              > <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web
              > Application 6.0//EN"
              > "http://www.bea.com/servers/wls600/dtd/weblogic-web-jar.dtd">
              > <weblogic-web-app>
              > <jsp-descriptor>
              > <jsp-param>
              > <param-name>
              > pageCheckSeconds
              > </param-name>
              > <param-value>
              > 1
              > </param-value>
              > </jsp-param>
              > <jsp-param>
              > <param-name>
              > verbose
              > </param-name>
              > <param-value>
              > true
              > </param-value>
              > </jsp-param>
              > <jsp-param>
              > <param-name>compileCommand</param-name>
              > <param-value>/local/apps/jdk1.3.0_02/bin/javac</param-value>
              > </jsp-param>
              > </jsp-descriptor>
              > <reference-descriptor>
              > <ejb-reference-description>
              > <ejb-ref-name>MyWeb</ejb-ref-name>
              > <jndi-name>MyWeb</jndi-name>
              > </ejb-reference-description>
              > </reference-descriptor>
              > </weblogic-web-app>
              >
              > thanks,
              >
              > Gary
              >
              >
              

  • EJBs From JSPs - Tutorials?

    Hi all,
    I've just been given a task, and I don't know where to start. I've been given an EJB and I need to write a web front end to test it (JSP). Now if it was a plain JavaBean, I know how to do it. But I know EJB's are different.
    Could somebody point me in the direction of a good tutorial about accessing EJBs from JSPs. I'm using WebLogic as my application server, so something relevant to that would be nice.
    Cheers for any help.

    To put it in "idiot" terms:
    Think of your EJBs as people you want to ring up on the phone. You know their name, but not their number. How do you do this in real life? You use a phone book, using the person's name as a reference, which will lead you to the right number to dial.
    The phonebook in this paradigm is JNDI - the naming and directory interfaces.
    The name you use to look up is how the EJB is bound (ie, "java:comp/env/ejb/MyPerson", or "foo/bar/beans/MyPerson"). You define this name (the phone number) in the deployment descriptors packaged with the EJBs in the jar file.
    You access the phone book (in your JSP or some other bean in your webapp) by using a Context.
    ie:
    Object objRef = initialContext.lookup("foo/bar/beans/MyPerson");
    Then you ask the context for the person's home information:
    MyPersonHome home = (com.foo.interfaces.MyPersonHome)PortableRemoteObject.narrow(objRef, com.foo.interfaces.MyPersonHome.class);
    Once you know where they live (you have their Home information), you can ring them up (create them, search for them, search for a singular one)
    MyPerson bill = home.findByPersonNameInHouse("billy");
    once you have Billy in your possession, yu can perform business logic on him:
    String stats = bill.getStatistics();
    // get rid of bill permanently
    bill.remove();
    That should be enough of an introductory paradigm. You will need to follow along the tutorials and other many documents to understand exactly how things are bound (phone numbers are listed) and so forth.
    Good luck!

  • How to lookup an EJB from JSP on a Remote Server in JES2005Q4

    Hi,
    I am having two different domain (domain1,domain2) respectvely. My ABC.ear j2eee application is deployed on domain2 and its iiop port is 33703.In domain1 i have xyz.war (web application) and it's IIOP port is 3700 .In xyz.war i am having CallEJB.jsp file.In this Jsp file i want to lookup an EJB Service called PaymentEJB(JNDI Name is ejb/PaymentEJB).
    The code is below
    InitialContext context=new InitialContext();
    Object objRef=context.lookup("corbaname:iiop:andaman:33703#ejb/PaymentEJB");
    I am getting the following error.
    [#|2005-12-14T16:42:03.422+0530|SEVERE|sun-appserver-pe8.1_02|javax.enterprise.resource.corba._DEFAULT_.rpc.transport|_ThreadID=11;|"IOP00410216: (COMM_FAILURE) Unable to create IIOP listener on the specified host/port: all interfaces/3700"
    org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 216 completed: No
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.createListenerFailed(ORBUtilSystemException.java:2661)
    My doubt is
    1.While starting domain1 and domain2 iiop listeners are started on the port 3700 and 33703.in that case why EJB lookup tries to create listener on one more time.
    2.I am looking the 33703 port only.but it tries to create port on 3700 why?
    3.It was working till JES2005Q1.Is there any patch i need to install? or i need to change anything in my code.
    I am frustrated with this error for past one week.I will be happy if some body will give me the peace of mind(thru some solution).

    Hi,
    I am having two different domain (domain1,domain2) respectvely. My ABC.ear j2eee application is deployed on domain2 and its iiop port is 33703.In domain1 i have xyz.war (web application) and it's IIOP port is 3700 .In xyz.war i am having CallEJB.jsp file.In this Jsp file i want to lookup an EJB Service called PaymentEJB(JNDI Name is ejb/PaymentEJB).
    The code is below
    InitialContext context=new InitialContext();
    Object objRef=context.lookup("corbaname:iiop:andaman:33703#ejb/PaymentEJB");
    I am getting the following error.
    [#|2005-12-14T16:42:03.422+0530|SEVERE|sun-appserver-pe8.1_02|javax.enterprise.resource.corba._DEFAULT_.rpc.transport|_ThreadID=11;|"IOP00410216: (COMM_FAILURE) Unable to create IIOP listener on the specified host/port: all interfaces/3700"
    org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 216 completed: No
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.createListenerFailed(ORBUtilSystemException.java:2661)
    My doubt is
    1.While starting domain1 and domain2 iiop listeners are started on the port 3700 and 33703.in that case why EJB lookup tries to create listener on one more time.
    2.I am looking the 33703 port only.but it tries to create port on 3700 why?
    3.It was working till JES2005Q1.Is there any patch i need to install? or i need to change anything in my code.
    I am frustrated with this error for past one week.I will be happy if some body will give me the peace of mind(thru some solution).

  • How can I call EJB from JSP/Servlets in iWS?

    Hi!!
    My JSP/Servlets are on iWS, and I deploy EJB on iAS.
    In this case, I don't know how JSP/Servlet call EJb on iAS.
    I'd like to know how I can set JNDI name in JSP/Servlet on iWS.
    I will thank you if you give me a simple example source using JSP/Servlet
    and EJB.
    Thanks in advance!!!
    - Park-

    Park,
    Why Are you running your JSP/Servlets in iWS instead of iAS? For whatever
    reason,
    look at the Converter sample from iAS. You will be doing RMI/IIOP in this
    case and the sample explains in detail what to do.
    hth,
    -robert
    "SungHyun, Park" <[email protected]> wrote in message
    news:9jpfmt$[email protected]..
    Hi!!
    My JSP/Servlets are on iWS, and I deploy EJB on iAS.
    In this case, I don't know how JSP/Servlet call EJb on iAS.
    I'd like to know how I can set JNDI name in JSP/Servlet on iWS.
    I will thank you if you give me a simple example source using JSP/Servlet
    and EJB.
    Thanks in advance!!!
    - Park-

  • 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.

  • How To Use EJB in JSP

    I've used beans in JSP.. but how to use EJB's in beans ??
    EJB's are deployed in Oracle 8i
    Please Help
    Thank You.

    Please find the answer in this HOWTO:
    http://technet.oracle.com:89/ubb/Forum2/HTML/006404.html
    HOWTO's are archived on the JDeveloper Documentation page:
    http://technet.oracle.com/docs/products/jdev/listing.htm (Click on Documentation Tab)
    Thanks,
    -Roel.

Maybe you are looking for