First of the names of the beans should match in your
ejb-jar.xml (HandlerBean) and jbosscmp-jdbc.xml (you have TestBean)
Second of all I am not sure if you can deploy your app in
a single war. My suspision is that you would nedd to break
it up on war [put your web stuff in here] and ejb.jar [put
your ejbs in here] then merge them together into ear.
Basically the structure should look something like the following:
your-ejb.jar
test/
YourEjb.class
META-INF/
jbosscmp-jdbc.xml
jboss.xml
ejb-jar.xml
your-app.war
index.jsp
WEB-INF/
web.xml
jbossweb.xml
lib/
ejb-client.jar
app.ear
your-app.war
your-ejb.jar
MEAT-INF/
application.xml
and you only copy app.ear into deploy directory
you basically have anywhere from 3 to 6 xml descriptors
to figure out :-)
ejb-jar.xml [required]
web.xml [required]
application.xml [required]
jbosscmp-jdbc.xml [optional]
jboss.xml [optional]
jbossweb.xml [optional]
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of costin
> Sent: Wednesday, February 26, 2003 7:33 AM
> To: [EMAIL PROTECTED]
> Subject: [JBoss-user] help with bounding entity bean
>
>
> Hi!
>
> I know that there are responses on the list for this kind of
> problem but there is no archive...yet.
>
> I am new to JBoss after moving from Resin EE and I am trying to get
> the hand of it - especially in the deployment area.
>
> I have read a lot of tutorials based on ant (includind the official
> doc) but I can`t make the entity bean bound.
>
> I have been banging my head agains the wall for the last day and it`s
> starting to hurt really bad so any help will be greatly appreciated.
>
>
> Okay, before giving the details here is the behaviour:
>
> the war is deployed okay and I can see the index.html page. The bean
> classes are very simple - I have listed them at the end of the
> message. The problem is that when I am accessing the jsp I cannot
> get the entity bean reference:
>
> <snip from the log - the extra logging is from the jsp>
>
> 14:11:10,217 INFO [jbossweb] Started
> WebApplicationContext[/bs,file:/usr/local/jboss-3.0.6/server/defau
> lt/deploy/bs.war/]
> 14:11:10,394 INFO [jbossweb] successfully deployed
> file:/usr/local/jboss-3.0.6/server/default/deploy/bs.war/ to /bs
> 14:11:10,394 INFO [MainDeployer] Deployed package:
> file:/usr/local/jboss-3.0.6/server/default/deploy/bs.war/
> 14:11:31,375 INFO [jbossweb] Registered
> jboss.web:Jetty=0,HttpContext=0,context=/
> 14:11:31,389 INFO [jbossweb] Registered
> jboss.web:Jetty=0,HttpContext=0,context=/,RootNotFoundHandler=0
> 14:11:31,390 INFO [jbossweb] Started HttpContext[/]
> 14:11:44,567 INFO [jbossweb] Got context
> 14:11:44,644 WARN [jbossweb] WARNING: Naming Exception 1046261504621
> javax.naming.NameNotFoundException: HandlerBean not bound
> at org.apache.jsp.test$jsp.jspInit(test$jsp.java:52)
> at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:90)
> at
> org.apache.jasper.servlet.JspServlet$JspServletWrapper.load(JspSer
> vlet.java:142)
> at
> org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNeces
> sary(JspServlet.java:178)
> at
> org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(Jsp
> Servlet.java:188)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplic
> ationHandler.java:280)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:553)
> at org.mortbay.http.HttpContext.handle(HttpContext.java:1717)
> at
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicat
> ionContext.java:549)
> at org.mortbay.http.HttpContext.handle(HttpContext.java:1667)
> at org.mortbay.http.HttpServer.service(HttpServer.java:862)
> at org.jboss.jetty.Jetty.service(Jetty.java:497)
> at
> org.mortbay.http.HttpConnection.service(HttpConnection.java:759)
> at
> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:923)
> at org.mortbay.http.HttpConnection.handle(HttpConnection.java:776)
> at
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:202)
> at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
> at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
>
> 14:11:44,645 INFO [jbossweb] Naming Exception 1046261504621:
> javax.naming.NameNotFoundException: HandlerBean not bound
>
> </snip>
>
> Here`s is my configuration:
>
> jboss-3.0.6 on RH 7.3
>
> $ java -version
> java version "1.4.1_01"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
> Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
>
> I have configured jboss with mysql using the samples xml and here
> goes the application.
>
> I have a very light entity bean that is being called by a jsp. The
> directory structure is:
>
> $ tree bs
>
> bs
> |-- META-INF
> | |-- ejb-jar.xml
> | `-- jbosscmp-jdbc.xml
> |-- WEB-INF
> | `-- web.xml
> |-- index.html
> |-- test
> | |-- Handler.class
> | |-- HandlerBean.class
> | `-- HandlerHome.class
> `-- test.jsp
>
> 3 directories, 8 files
>
> I have symlinked the directory to
> $JBOSS_HOME/server/default/deploy/bs.war
>
> The sources are as follow:
>
> #### test.jsp
>
> <%@ page import="javax.ejb.*,javax.naming.*,test.*, java.util.*" %>
> <html>
> <%!
> HandlerHome home;
>
> public void jspInit()
> {
> try
> {
>
> // Get a naming context
> InitialContext initial = new InitialContext();
>
> getServletContext().log("Got context");
>
> home = (HandlerHome) initial.lookup("HandlerBean");
> getServletContext().log("Got reference");
> }
> catch (NamingException e)
> {
> getServletContext().log("Naming Exception
> "+System.currentTimeMillis(),
>
> e.fillInStackTrace());
> }
> }
> %>
>
> <%
> %>
> </html>
>
> ##########################
>
> As you can see this jsp only get`s the context and then a reference to
> the entity bean.
>
> The deployment files is listed here:
>
> ########### ejb-jar.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE ejb-jar PUBLIC
> "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
> "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
> <ejb-jar>
> <enterprise-beans>
> <entity>
>
> <ejb-name>HandlerBean</ejb-name>
>
> <local-home>test.HandlerHome</local-home>
> <local>test.Handler</local>
> <ejb-class>test.HandlerBean</ejb-class>
>
> <persistence-type>Container</persistence-type>
> <cmp-version>2.x</cmp-version>
> <reentrant>True</reentrant>
>
> <prim-key-class>java.lang.String</prim-key-class>
> <primkey-field>entry</primkey-field>
>
> <abstract-schema-name>ejbtest</abstract-schema-name>
>
> <cmp-field>
> <field-name>entry</field-name>
> </cmp-field>
> <cmp-field>
> <field-name>name</field-name>
> </cmp-field>
>
> </entity>
>
> </enterprise-beans>
>
> </ejb-jar>
> #####################################
> ##################### jboss-cmp
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE jbosscmp-jdbc PUBLIC
> "-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN"
> "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd">
>
> <jbosscmp-jdbc>
>
> <enterprise-beans>
>
> <entity>
> <ejb-name>TestBean</ejb-name>
> <table-name>TestBean</table-name>
>
> <cmp-field>
> <field-name>entry</field-name>
> <column-name>entry</column-name>
> </cmp-field>
> <cmp-field>
> <field-name>name</field-name>
> <column-name>name</column-name>
> </cmp-field>
>
> </entity>
>
> </enterprise-beans>
>
> </jbosscmp-jdbc>
> #################
>
>
> the classes:
>
> ################# Handler.java
> package test;
>
> import javax.ejb.EJBLocalObject;
>
> public interface Handler extends EJBLocalObject
> {
> public String getName();
> void setName(String name);
>
> public String getEntry();
> void setEntry(String id);
> }
> ##############
>
> ################# HandlerBean.java
> package test;
>
> import javax.ejb.*;
>
> public abstract class HandlerBean implements EntityBean {
>
> public abstract String getName();
> public abstract void setName(String name);
>
> public abstract String getEntry();
> public abstract void setEntry(String id);
>
>
> public String ejbCreate(String id, String name)
> throws CreateException
> {
> setEntry(id);
> setName(name);
>
> return null;
> }
>
> public void ejbPostCreate(String name, String id)
> {
> }
>
> }
> ###########################
> ##################### HandlerHome.java
> package test;
>
> import javax.ejb.EJBLocalHome;
> import javax.ejb.CreateException;
> import javax.ejb.FinderException;
>
> public interface HandlerHome extends EJBLocalHome
> {
> public Handler create(String id, String name)
> throws CreateException;
>
> public Handler findByPrimaryKey(String entry)
> throws FinderException;
>
> }
> ##############################
>
>
> P.S. Sorry about this huge email.
>
>
> --
> Thanks,
> costin
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Scholarships for Techies!
> Can't afford IT training? All 2003 ictp students receive scholarships.
> Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
> www.ictp.com/training/sourceforge.asp
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
>
-------------------------------------------------------
This SF.net email is sponsored by: Scholarships for Techies!
Can't afford IT training? All 2003 ictp students receive scholarships.
Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
www.ictp.com/training/sourceforge.asp
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user