On 2/19/06, Olivier Voutat <[EMAIL PROTECTED]> wrote:
> Like this so:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app id="WebApp_15" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee
> " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
> <display-name>AgendaWeb</display-name>
> <welcome-file-list>
> <welcome-file> index.html</welcome-file>
> </welcome-file-list>
> <servlet>
> <servlet-name>Controle</servlet-name>
>
> <servlet-class>br.cefetrn.olivier.servlet.ControladorServlet
> </servlet-class>
> </servlet>
> <servlet-mapping>
> <servlet-name>Controle</servlet-name>
> <url-pattern>/control</url-pattern>
> </servlet-mapping>
> <ejb-ref>
> <ejb-ref-name>Agenda</ejb-ref-name>
> <ejb-ref-type>Session</ejb-ref-type>
> <home>br.cefetrn.olivier.ejb.AgendaHome</home>
> <remote> br.cefetrn.olivier.ejb.Agenda</remote>
> <ejb-link>Agenda</ejb-link>
> </ejb-ref>
> </web-app>
Right -- then look the EJB up in your servlet with code like this:
AgendaHome home = (AgendaHome)new
InitialContext().lookup("java:comp/env/Agenda");
> Question: It is more eficient to use a Database Pool or Entity-Beans ?
For simple things, the entity beans should be more efficient unless
you're very aggressive about optimizing your database access. For
more complex queries or usage involving a large number of rows (like a
search screen), JDBC is typically more efficient. But you also have
to factor in the amount of effort required to write and maintain the
code -- both the SQL on the JDBC side and the entity bean classes,
interfaces, and deployment descriptors on the EJB side. If you're
working with entity beans, you may want to look into tools like
Middlegen and XDoclet to generate some of that code for you.
Thanks,
Aaron
> On 2/19/06, Aaron Mulder <[EMAIL PROTECTED]> wrote:
> > The way you're trying to call the EJB is normally used for application
> > clients. For a web application, you should declare an ejb-ref in your
> > web.xml, and include an ejb-link in the ejb-ref that points to the
> > name of the EJB.
> >
> > Thanks,
> > Aaron
> >
> > On 2/19/06, Olivier Voutat <[EMAIL PROTECTED] > wrote:
> > > Thanks again Aaron, I included that lines and now the deploy works
> > > BUT....(there is always a BUT) now I have another problem. When I call
> the
> > > Agenda ejb it is saying that it is not there....Don't know why since it
> > > worked before...
> > >
> > > javax.naming.NameNotFoundException: Agenda
> > >
> > > my ejb-jar.xml:
> > >
> > > <session id="Session_Agenda">
> > > <description><![CDATA[A session bean named
> Agenda]]></description>
> > > <display-name>Agenda</display-name>
> > >
> > > <ejb-name>Agenda</ejb-name>
> > >
> > > <home>br.cefetrn.olivier.ejb.AgendaHome</home>
> > > <remote> br.cefetrn.olivier.ejb.Agenda </remote>
> > >
> > >
> <ejb-class>br.cefetrn.olivier.ejb.AgendaBean</ejb-class>
> > > <session-type>Stateless</session-type>
> > > <transaction-type>Container</transaction-type>
> > > <resource-ref>
> > > <res-ref-name>MyDatabase</res-ref-name>
> > > <res-type>javax.sql.DataSource</res-type>
> > > <res-auth>Container</res-auth>
> > >
> > > <res-sharing-scope>Shareable</res-sharing-scope>
> > > </resource-ref>
> > > </session>
> > >
> > > My servlet which calls the bean:
> > > Properties p = new Properties();
> > > p.put("java.naming.factory.initial",
> > >
> > > "org.openejb.client.RemoteInitialContextFactory");
> > >
> > > p.put("java.naming.provider.url",
> > > "localhost:4201");
> > >
> > > p.put("java.naming.security.principal",
> > > "system");
> > >
> > > p.put("java.naming.security.credentials",
> > > "manager");
> > >
> > > //-----Obtem o contexto inicial JNDI----------
> > > InitialContext ctx = new InitialContext(p);
> > >
> > > // ------Pega a referencia do objeto home--------
> > > Object obj = ctx.lookup("Agenda");
> > > // tried too Object obj = ctx.lookup("java:comp/Agenda");
> > >
> > > AgendaHome home = (AgendaHome)obj;
> > > Agenda agenda = home.create();
> > >
> > > And a doubt that I have. For a Database pool beeing really useful, it
> should
> > > be used by a ejb ? I think that because if u call it in a simple class,
> that
> > > one will receive all the requests from all the ejbs and the Database
> Pool
> > > won't be so practical.
> > >
> > > Olivier Voutat
> > >
> > >
> > > On 2/19/06, Aaron Mulder <[EMAIL PROTECTED]> wrote:
> > > > You left out the namespace and configId and other stuff that has to go
> > > > in the first openejb-jar element. There's an example with everything
> > > > you might need here:
> > > >
> > > >
> http://chariotsolutions.com/geronimo/ejb-overview.html
> > > >
> > > > Of that, you probably just need the xmlns and configId for now.
> > > >
> > > > Thanks,
> > > > Aaron
> > > >
> > > > On 2/19/06, Olivier Voutat < [EMAIL PROTECTED]> wrote:
> > > > > So, I created my openejb-jar.xml in the same folder (META-INF) that
> my
> > > > > ejb-jar.xml was, like this:
> > > > >
> > > > > <?xml version=" 1.0" encoding="UTF-8"?>
> > > > > <openejb-jar>
> > > > > <enterprise-beans>
> > > > > <session>
> > > > > <ejb-name>Agenda</ejb-name>
> > > > > <resource-ref>
> > > > > <ref-name>MyDatabase</ref-name>
> > > > >
> > > <resource-link>AgendaEJB</resource-link>
> > > > > </resource-ref>
> > > > > </session>
> > > > > </enterprise-beans>
> > > > > </openejb-jar>
> > > > >
> > > > > But when I try to deploy Geronimo says:
> > > > >
> > > > > Currently a Geronimo deployment plan is required for an EJB module.
> > > Please
> > > > > provide a plan as a deployer argument or packaged in the EJB JAR at
> > > > > META-INF/openejb- jar.xml
> > > > >
> > > > > ???
> > > > >
> > > > > Olivier
> > > > >
> > > > >
> > > > > On 2/18/06, Aaron Mulder < [EMAIL PROTECTED]> wrote:
> > > > > > The openejb-jar.xml file goes in META-INF/ of the EJB JAR next to
> > > > > ejb-jar.xml.
> > > > > >
> > > > > > The header block and a variety of possible content is here:
> > > > > >
> > > > > > http://chariotsolutions.com/geronimo/ejb.html
> > > > > >
> > > > > > But if you didn't have this file before, you probably don't need
> much
> > > > > > but the header, footer, and the bits I gave in the example. In
> > > > > > particular, you don't need to list a particular EJB there if you
> don't
> > > > > > have any special settings for it.
> > > > > >
> > > > > > Thanks,
> > > > > > Aaron
> > > > > >
> > > > > > On 2/18/06, Olivier Voutat < [EMAIL PROTECTED] > wrote:
> > > > > > > Thanks Aaron but I have a last little question, I never used
> until
> > > now
> > > > > this
> > > > > > > openejb-jar.xml...
> > > > > > >
> > > > > > > I only have application.xml, geronimo-application.xml in the EAR
> and
> > > the
> > > > > > > ejb-jar.xml in the EJB module.
> > > > > > >
> > > > > > > There is someplace else where I can put it or I must create this
> > > > > > > openejb-jar.xml ? If so could you give me an example of how it
> > > should
> > > > > look
> > > > > > > like.
> > > > > > >
> > > > > > > Best Regards,
> > > > > > > Olivier Voutat
> > > > > > >
> > > > > > >
> > > > > > > On 2/18/06, Aaron Mulder < [EMAIL PROTECTED] >
> wrote:
> > > > > > > >
> > > > > > > > In ejb-jar.xml you add a resource-ref entry in the section
> where
> > > you
> > > > > > > > declare your bean, so it looks like this:
> > > > > > > >
> > > > > > > > <ejb-jar ...>
> > > > > > > > <enterprise-beans>
> > > > > > > > <session>
> > > > > > > > <ejb-name>Foo</ejb-name>
> > > > > > > > ...
> > > > > > > > <resource-ref>
> > > > > > > >
> <res-ref-name>MyDatabase</res-ref-name>
> > > > > > > > <res-type> javax.sql.DataSource</res-type>
> > > > > > > > <res-auth>Container</res-auth>
> > > > > > > >
> > > > > <res-sharing-scope>Shareable</res-sharing-scope>
> > > > > > > > </resource-ref>
> > > > > > > > </session>
> > > > > > > > </enterprise-beans>
> > > > > > > > </ejb-jar>
> > > > > > > >
> > > > > > > > Then in your openejb-jar.xml you add a section to point that
> to a
> > > > > > > > specific database pool (where ref-name matches res-ref-name in
> > > > > > > > ejb-jar.xml , and resource-link matches the name of the
> database
> > > pool
> > > > > > > > as you configured it in the console):
> > > > > > > >
> > > > > > > > <openejb-jar ...>
> > > > > > > > <enterprise-beans>
> > > > > > > > <session>
> > > > > > > > <ejb-name>Foo</ejb-name>
> > > > > > > > ...
> > > > > > > > <resource-ref>
> > > > > > > > <ref-name>MyDatabase</ref-name>
> > > > > > > >
> > > <resource-link>PostgreSQLPool</resource-link>
> > > > > > > > </resource-ref>
> > > > > > > > </session>
> > > > > > > > </enterprise-beans>
> > > > > > > > </openejb-jar>
> > > > > > > >
> > > > > > > > Finally, in your EJB code, you look up the data source in JNDI
> > > like
> > > > > > > > this, where the JNDI name is "java:comp/env/" plus the
> > > res-ref-name
> > > > > > > > you used in ejb-jar.xml:
> > > > > > > >
> > > > > > > > Context ctx = new InitialContext();
> > > > > > > > Object obj = ctx.lookup("java:comp/env/MyDatabase");
> > > > > > > > DataSource ds = (DataSource)obj;
> > > > > > > > Connection con = ds.getConnection();
> > > > > > > >
> > > > > > > > If you want to access the database pool from a web component
> like
> > > a
> > > > > > > > servlet, you have to add a similar resource reference to
> web.xml
> > > and a
> > > > > > > > similar block to resolve it to a database pool to
> geronimo-web.xml
> > > and
> > > > > > > > the code would look the same.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Aaron
> > > > > > > >
> > > > > > > > On 2/17/06, Olivier Voutat < [EMAIL PROTECTED]> wrote:
> > > > > > > > > Thanks Aaron,
> > > > > > > > >
> > > > > > > > > This worked perfectly, but now I have a little problem....u
> made
> > > me
> > > > > get
> > > > > > > > > curious about using a database pool... u see I'm a student
> of
> > > > > computer
> > > > > > > > > sciences in Brazil and we use Java as our main programming
> > > language.
> > > > > Our
> > > > > > > > > teacher uses JBoss, and since I knew Geronimo now I call it
> > > JBosta
> > > > > > > (meaning
> > > > > > > > > Jshit, sorry the word)...
> > > > > > > > >
> > > > > > > > > I easily create the database pool but how should I configure
> my
> > > ejb
> > > > > to
> > > > > > > be
> > > > > > > > > able to use it ?
> > > > > > > > >
> > > > > > > > > David, the tip that Aaron gaved me is very easy to use and
> works
> > > > > > > perfectly
> > > > > > > > > for Jaybird for simple connections.
> > > > > > > > >
> > > > > > > > > Olivier
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On 2/17/06, Aaron Mulder < [EMAIL PROTECTED]>
> wrote:
> > > > > > > > > > Ah, I see... If you don't want to use the connection pool
> > > then
> > > > > the
> > > > > > > > > > technique is a little different. You need a <dependency>
> > > element
> > > > > in
> > > > > > > > > > the Geronimo deployment plan for your J2EE module ( e.g.
> > > > > > > > > > geronimo-web.xml for a web app).
> > > > > > > > > >
> > > > > > > > > > If you want to know exactly what the dependency element
> should
> > > > > look
> > > > > > > > > > like you can go through the database pool screen in the
> > > console
> > > > > just
> > > > > > > > > > like you did and then after you test it hit "Show Plan"
> > > instead of
> > > > > > > > > > deploying the pool, and just take the <depenency> element
> from
> > > out
> > > > > of
> > > > > > > > > > that plan, and put it in the plan for your J2EE module
> > > instead.
> > > > > It's
> > > > > > > > > > not necessary to go through the console this way, but
> it'll
> > > give
> > > > > you
> > > > > > > > > > somethign to copy and paste exactly. :) Anyway, it'll be
> > > > > something
> > > > > > > > > > like this, depending on exactly where you put it in the
> > > > > repository:
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > >
> > >
> <dependency><url>something/jaybird-full/2.0.1/jar</uri></dependency>
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Aaron
> > > > > > > > > >
> > > > > > > > > > On 2/17/06, Olivier Voutat < [EMAIL PROTECTED]>
> wrote:
> > > > > > > > > > > Hi again,
> > > > > > > > > > >
> > > > > > > > > > > For those who doesn't know, I'm trying to establish a
> > > > > connection
> > > > > > > > > between my
> > > > > > > > > > > J2EE application and Firebird Database using
> > > > > > > Jaybird-2.0.1JDK_1.5.zip
> > > > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > >
> > >
> http://firebird.sourceforge.net/index.php?op=files&id=jaybird
> > > > > > > > > > >
> > > > > > > > > > > (yeah,yeah, I know that Geronimo is only certified for
> J2EE
> > > 1.4
> > > > > but
> > > > > > > so
> > > > > > > > > far
> > > > > > > > > > > it hasn't be a big issue).
> > > > > > > > > > >
> > > > > > > > > > > Extra information: The application that I'm testing
> already
> > > > > worked
> > > > > > > > > under
> > > > > > > > > > > Geronimo using a connection to Firebird through unixODBC
> > > without
> > > > > a
> > > > > > > > > database
> > > > > > > > > > > pool.
> > > > > > > > > > >
> > > > > > > > > > > Thanks everybody who replied. Didn't understand very
> well
> > > your
> > > > > .rar
> > > > > > > > > issue
> > > > > > > > > > > David, but anyway here is my situation:
> > > > > > > > > > >
> > > > > > > > > > > I wasn't trying to create a database pool to do a
> > > connection
> > > > > (it is
> > > > > > > > > really
> > > > > > > > > > > necessary ?).
> > > > > > > > > > > I was trying to make the jaybird-full-2.0.1.jar
> avaliable
> > > to my
> > > > > > > J2EE.
> > > > > > > > > > >
> > > > > > > > > > > Current situation, I created a database pool connection
> > > with
> > > > > the
> > > > > > > > > Database
> > > > > > > > > > > Type "Other".
> > > > > > > > > > > In the next config page I put:
> > > > > > > > > > >
> > > > > > > > > > > JDBC Driver Class: org.firebirdsql.jdbc.FBDriver
> > > > > > > > > > > Driver JAR: jaybird-full-2.0.1.jar (deployed in the
> > > repository
> > > > > > > trough
> > > > > > > > > the
> > > > > > > > > > > common libraries page)
> > > > > > > > > > > JDBC Connect URL:
> > > > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > >
> > >
> jdbc:firebirdsql:localhost/3050:/firebirdData/mydatabase.fdb
> > > > > > > > > > > DB User Name: *******
> > > > > > > > > > > DB Password: *******
> > > > > > > > > > >
> > > > > > > > > > > After that I did a "Test Connection" and no problem
> alert
> > > was
> > > > > given
> > > > > > > so
> > > > > > > > > I
> > > > > > > > > > > deployed it.
> > > > > > > > > > >
> > > > > > > > > > > Deployed my application and it stills gives me the
> message
> > > > > > > > > > > ClassNotFoundException...
> > > > > > > > > > >
> > > > > > > > > > > Olivier Voutat
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > On 2/17/06, David Jencks < [EMAIL PROTECTED]>
> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > On Feb 16, 2006, at 6:22 PM, Olivier Voutat wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > I'm not getting how to install the driver to make
> this
> > > one
> > > > > > > > > > > > > avaliable to my applications in Geronimo. Tried many
> > > ways,
> > > > > and
> > > > > > > > > > > > > can't find a way that makes it works. Didn't find
> any
> > > > > documents
> > > > > > > > > > > > > about it neither.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Can somebody help me about it ?
> > > > > > > > > > > >
> > > > > > > > > > > > I tried deploying the latest rar from the downloads,
> but
> > > it
> > > > > has a
> > > > > > > > > > > > problem in ra.xml (see firebird issue 1433327). I
> fixed
> > > the
> > > > > > > problem
> > > > > > > > > > > > in firebird cvs, so if you build the rar yourself it
> will
> > > > > work.
> > > > > > > > > > > > (I'll also send you a copy privately). If you want to
> use
> > > > > > > something
> > > > > > > > > > > > closer to the current release, you need to change in
> > > ra.xml
> > > > > > > > > > > >
> > > > > > > > > > > > <credential-
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > >
> > > > >
> interface>javax.resource.security.PasswordCredential
> > > > > > > </credential-
> > > > > > > > > > > > interface>
> > > > > > > > > > > > to
> > > > > > > > > > > > <credential-
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > >
> > >
> interface>javax.resource.spi.security.PasswordCredential
> > > > > > > </credential-
> > > > > > > > > > > > interface>
> > > > > > > > > > > >
> > > > > > > > > > > > and repack the rar.
> > > > > > > > > > > >
> > > > > > > > > > > > Anyway, after obtaining a correct rar, you can modify
> the
> > > plan
> > > > > I
> > > > > > > will
> > > > > > > > > > > > also send privately to suit your environment and
> deploy to
> > > a
> > > > > > > running
> > > > > > > > > > > > server using
> > > > > > > > > > > >
> > > > > > > > > > > > java -jar target/geronimo-
> 1.1-SNAPSHOT/bin/deployer.jar
> > > > > --user
> > > > > > > system
> > > > > > > > > > > > --password manager deploy jaybird-2.1.0.rar
> > > jaybird-plan.xml
> > > > > > > > > > > >
> > > > > > > > > > > > This deployed OK for me but I don't have a firebird
> > > > > installation
> > > > > > > > > > > > handy so I don't know if there are other problems.
> Please
> > > let
> > > > > me
> > > > > > > > > > > > know of your progress, I would like there to be a wiki
> > > page on
> > > > > > > using
> > > > > > > > > > > > firebird/jaybird with Geronimo.
> > > > > > > > > > > >
> > > > > > > > > > > > If anyone else would like a copy of the plan I can
> perhaps
> > > get
> > > > > > > > > > > > started on the wiki page and attach it there.
> > > > > > > > > > > >
> > > > > > > > > > > > thanks
> > > > > > > > > > > > david jencks
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Olivier
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > --
> > > > > > > > > > > Olivier & Cidiane Voutat
> > > > > > > > > > > Rua Praia de Muri�, 9188
> > > > > > > > > > > Cep 59092-390 / Natal - RN
> > > > > > > > > > > Tel: (84) 3219-0427 Cel: (84) 9977-3917
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > >
> > > > > > > > > Olivier & Cidiane Voutat
> > > > > > > > > Rua Praia de Muri�, 9188
> > > > > > > > > Cep 59092-390 / Natal - RN
> > > > > > > > > Tel: (84) 3219-0427 Cel: (84) 9977-3917
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Olivier & Cidiane Voutat
> > > > > > > Rua Praia de Muri�, 9188
> > > > > > >
> > > > > > > Cep 59092-390 / Natal - RN
> > > > > > > Tel: (84) 3219-0427 Cel: (84) 9977-3917
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Olivier & Cidiane Voutat
> > > > > Rua Praia de Muriú, 9188
> > > > >
> > > > > Cep 59092-390 / Natal - RN
> > > > > Tel: (84) 3219-0427 Cel: (84) 9977-3917
> > > >
> > >
> > >
> > >
> > > --
> > >
> > > Olivier & Cidiane Voutat
> > > Rua Praia de Muriú, 9188
> > > Cep 59092-390 / Natal - RN
> > > Tel: (84) 3219-0427 Cel: (84) 9977-3917
> >
>
>
>
> --
>
> Olivier & Cidiane Voutat
> Rua Praia de Muriú, 9188
> Cep 59092-390 / Natal - RN
> Tel: (84) 3219-0427 Cel: (84) 9977-3917