Enterprise beans son componentes de J2EE que implementan la tecnología Enterprise JavaBeans (EJB).
Enterprise beans corren dentro de un EJB container, un runtime environment dentro del Application Server.
![]() |
Cuándo emplear Enterprise Beans
Se debe considerar el uso de enterprise beans si la aplicación presenta alguno de los siguientes requerimientos:
![]() |
![]() |
Tipos de Enterprise Beans
Para desarrollar una enterprise bean, se deben proveer los siguientes archivos:
![]() |
![]() |
Descripción de clases e interfaces
DD deployment descriptor. |
Session Bean
1:package com.titan.travelagent; 2: 3:import com.titan.cabin.CabinRemote; 4:import com.titan.cabin.CabinHomeRemote; 5:import java.rmi.RemoteException; 6:import javax.naming.InitialContext; 7:import javax.naming.Context; 8:import javax.ejb.EJBException; 9:import java.util.Properties; 10:import java.util.Vector; 11: 12:public class TravelAgentBean implements javax.ejb.SessionBean 13:{ 14: 15: public void ejbCreate() 16: { 17: // Do nothing. 18: } 19: 20: public String [] listCabins(int shipID, int bedCount) 21: { 22: try 23: { 24: javax.naming.Context jndiContext = new InitialContext(); 25: Object obj = 26: jndiContext.lookup("java:comp/env/ejb/CabinHomeRemote"); 27: 28: 29: CabinHomeRemote home = (CabinHomeRemote) 30: javax.rmi.PortableRemoteObject.narrow(obj,CabinHomeRemote.class); 31: 32: Vector vect = new Vector(); 33: for (int i = 1; ; i++) 34: { 35: Integer pk = new Integer(i); 36: CabinRemote cabin = null; 37: try 38: { 39: cabin = home.findByPrimaryKey(pk); 40: } 41: catch(javax.ejb.FinderException fe) 42: { 43: System.out.println("Caught exception: "+fe.getMessage()+" for pk="+i); 44: break; 45: } 46: // Check to see if the bed count and ship ID match. 47: if (cabin != null && 48: cabin.getShipId() == shipID && 49: cabin.getBedCount() == bedCount) 50: { 51: String details = 52: i+","+cabin.getName()+","+cabin.getDeckLevel(); 53: vect.addElement(details); 54: } 55: } 56: 57: String [] list = new String[vect.size()]; 58: vect.copyInto(list); 59: return list; 60: 61: } 62: catch(Exception e) 63: { 64: throw new EJBException(e); 65: } 66: } 67: 68: public void ejbRemove(){} 69: public void ejbActivate(){} 70: public void ejbPassivate(){} 71: public void setSessionContext(javax.ejb.SessionContext cntx){} 72:} |
1:package com.titan.travelagent; 2: 3:import java.rmi.RemoteException; 4:import javax.ejb.CreateException; 5: 6:public interface TravelAgentHomeRemote extends javax.ejb.EJBHome { 7: 8: public TravelAgentRemote create() 9: throws RemoteException, CreateException; 10: 11:} |
1:package com.titan.travelagent; 2: 3:import java.rmi.RemoteException; 4:import javax.ejb.FinderException; 5: 6:public interface TravelAgentRemote extends javax.ejb.EJBObject { 7: 8: // String elements follow the format "id, name, deck level" 9: public String [] listCabins(int shipID, int bedCount) 10: throws RemoteException; 11: 12:} |
Entity Bean
1:package com.titan.cabin; 2: 3:import javax.ejb.EntityContext; 4:import javax.ejb.CreateException; 5: 6:public abstract class CabinBean 7: implements javax.ejb.EntityBean 8:{ 9: 10: public Integer ejbCreate(Integer id) throws CreateException 11: { 12: this.setId(id); 13: return null; 14: } 15: public void ejbPostCreate(Integer id) 16: { 17: } 18: 19: public abstract void setId(Integer id); 20: public abstract Integer getId(); 21: 22: public abstract void setShipId(int ship); 23: public abstract int getShipId( ); 24: 25: public abstract void setName(String name); 26: public abstract String getName( ); 27: 28: public abstract void setBedCount(int count); 29: public abstract int getBedCount(); 30: 31: public abstract void setDeckLevel(int level); 32: public abstract int getDeckLevel(); 33: 34: public void setEntityContext(EntityContext ctx) 35: { 36: // Not implemented. 37: } 38: public void unsetEntityContext() 39: { 40: // Not implemented. 41: } 42: public void ejbActivate() 43: { 44: // Not implemented. 45: } 46: public void ejbPassivate() 47: { 48: // Not implemented. 49: } 50: public void ejbLoad() 51: { 52: // Not implemented. 53: } 54: public void ejbStore() 55: { 56: // Not implemented. 57: } 58: public void ejbRemove() 59: { 60: // Not implemented. 61: } 62:} |
1:package com.titan.cabin; 2: 3:import java.rmi.RemoteException; 4:import javax.ejb.CreateException; 5:import javax.ejb.FinderException; 6: 7:public interface CabinHomeRemote extends javax.ejb.EJBHome 8:{ 9: public CabinRemote create(Integer id) 10: throws CreateException, RemoteException; 11: 12: public CabinRemote findByPrimaryKey(Integer pk) 13: throws FinderException, RemoteException; 14:} |
1:package com.titan.cabin; 2: 3:import java.rmi.RemoteException; 4: 5:public interface CabinRemote extends javax.ejb.EJBObject 6:{ 7: public String getName() throws RemoteException; 8: public void setName(String str) throws RemoteException; 9: public int getDeckLevel() throws RemoteException; 10: public void setDeckLevel(int level) throws RemoteException; 11: public int getShipId() throws RemoteException; 12: public void setShipId(int sp) throws RemoteException; 13: public int getBedCount() throws RemoteException; 14: public void setBedCount(int bc) throws RemoteException; 15:} |
Ejemplo y Descriptores
1:package com.titan.clients; 2: 3:import com.titan.travelagent.TravelAgentHomeRemote; 4:import com.titan.travelagent.TravelAgentRemote; 5: 6:import javax.naming.InitialContext; 7:import javax.naming.Context; 8:import javax.naming.NamingException; 9:import javax.ejb.CreateException; 10:import javax.rmi.PortableRemoteObject; 11: 12:import java.rmi.RemoteException; 13: 14:public class Client_3 15:{ 16: public static int SHIP_ID = 1; 17: public static int BED_COUNT = 3; 18: 19: public static void main(String [] args) 20: { 21: try 22: { 23: Context jndiContext = getInitialContext(); 24: 25: Object ref = jndiContext.lookup("TravelAgentHomeRemote"); 26: 27: TravelAgentHomeRemote home = (TravelAgentHomeRemote) 28: PortableRemoteObject.narrow(ref,TravelAgentHomeRemote.class); 29: 30: TravelAgentRemote travelAgent = home.create(); 31: 32: // Get a list of all cabins on ship 1 with a bed count of 3. 33: String list [] = travelAgent.listCabins(SHIP_ID,BED_COUNT); 34: 35: for(int i = 0; i < list.length; i++) 36: { 37: System.out.println(list[i]); 38: } 39: } 40: catch(java.rmi.RemoteException re) 41: { 42: re.printStackTrace(); 43: } 44: catch(Throwable t) 45: { 46: t.printStackTrace(); 47: } 48: } 49: 50: static public Context getInitialContext() throws Exception 51: { 52: return new InitialContext(); 53: /**** context initialized by jndi.properties file 54: java.util.Properties p = new java.util.Properties(); 55:p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); 56: p.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces"); 57: p.put(Context.PROVIDER_URL, "localhost:1099"); 58: return new javax.naming.InitialContext(p); 59: */ 60: } 61: 62:} 63: |
1:<?xml version="1.0"?> 2: 3:<jboss> 4: <enterprise-beans> 5: <entity> 6: <ejb-name>CabinEJB</ejb-name> 7: <jndi-name>CabinHomeRemote</jndi-name> 8: </entity> 9: <session> 10: <ejb-name>TravelAgentEJB</ejb-name> 11: <jndi-name>TravelAgentHomeRemote</jndi-name> 12: <ejb-ref> 13: <ejb-ref-name>ejb/CabinHomeRemote</ejb-ref-name> 14: <jndi-name>CabinHomeRemote</jndi-name> 15: </ejb-ref> 16: </session> 17: </enterprise-beans> 18:</jboss> |
1:<?xml version="1.0"?> 2: 3:<!DOCTYPE ejb-jar PUBLIC 4:"-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" 5:"http://java.sun.com/dtd/ejb-jar_2_0.dtd"> 6: 7:<ejb-jar> 8: 9: <enterprise-beans> 10: <entity> 11: <ejb-name>CabinEJB</ejb-name> 12: <home>com.titan.cabin.CabinHomeRemote</home> 13: <remote>com.titan.cabin.CabinRemote</remote> 14: <ejb-class>com.titan.cabin.CabinBean</ejb-class> 15: <persistence-type>Container</persistence-type> 16: <prim-key-class>java.lang.Integer</prim-key-class> 17: <reentrant>False</reentrant> 18: <cmp-version>2.x</cmp-version> 19: <abstract-schema-name>Cabin</abstract-schema-name> 20: <cmp-field><field-name>id</field-name></cmp-field> 21: <cmp-field><field-name>name</field-name></cmp-field> 22: <cmp-field><field-name>deckLevel</field-name></cmp-field> 23: <cmp-field><field-name>shipId</field-name></cmp-field> 24: <cmp-field><field-name>bedCount</field-name></cmp-field> 25: <primkey-field>id</primkey-field> 26: <security-identity><use-caller-identity/></security-identity> 27: </entity> 28: 29: <session> 30: <ejb-name>TravelAgentEJB</ejb-name> 31: <home>com.titan.travelagent.TravelAgentHomeRemote</home> 32: <remote>com.titan.travelagent.TravelAgentRemote</remote> 33: <ejb-class>com.titan.travelagent.TravelAgentBean</ejb-class> 34: <session-type>Stateless</session-type> 35: <transaction-type>Container</transaction-type> 36: 37: <ejb-ref> 38: <ejb-ref-name>ejb/CabinHomeRemote</ejb-ref-name> 39: <ejb-ref-type>Entity</ejb-ref-type> 40: <home>com.titan.cabin.CabinHomeRemote</home> 41: <remote>com.titan.cabin.CabinRemote</remote> 42: </ejb-ref> 43: 44: <security-identity><use-caller-identity/></security-identity> 45: 46: </session> 47: </enterprise-beans> 48: 49: <assembly-descriptor> 50: 51: <security-role> 52: <description> 53: This role represents everyone who is allowed full access to the beans. 54: </description> 55: <role-name>everyone</role-name> 56: </security-role> 57: 58: <method-permission> 59: <role-name>everyone</role-name> 60: <method> 61: <ejb-name>CabinEJB</ejb-name> 62: <method-name>*</method-name> 63: </method> 64: <method> 65: <ejb-name>TravelAgentEJB</ejb-name> 66: <method-name>*</method-name> 67: </method> 68: </method-permission> 69: 70: <container-transaction> 71: <method> 72: <ejb-name>CabinEJB</ejb-name> 73: <method-name>*</method-name> 74: </method> 75: <method> 76: <ejb-name>TravelAgentEJB</ejb-name> 77: <method-name>*</method-name> 78: </method> 79: <trans-attribute>Required</trans-attribute> 80: </container-transaction> 81: 82: </assembly-descriptor> 83: 84:</ejb-jar> |
Desarrollando EJBs con JBuilder
Requerimientos
![]() |
Configuring JBoss for MySQL
<datasource>java:/DefaultDS</datasource><type-mapping>mySQL</type-mapping> <mbean code="org.jboss.mq.pm.jdbc2.PersistenceManager" name="jboss.mq:service=PersistenceManager"> <depends optional-attribute-name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=DefaultDS</depends> <attribute name="SqlProperties">
<!-- A persistence policy that persistes timers to a database --> <mbean code="org.jboss.ejb.txtimer.DatabasePersistencePolicy" name="jboss.ejb:service=EJBTimerService,persistencePolicy=database"> <!-- DataSource JNDI name --> <depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=MySqlDS</depends> <!-- The plugin that handles database persistence --> <attribute name="DatabasePersistencePlugin">org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin</attribute> </mbean> <datasource>java:/MySqlDS</datasource><type-mapping>mySQL</type-mapping> <mbean code="org.jboss.mq.pm.jdbc2.PersistenceManager" name="jboss.mq:service=PersistenceManager"> <depends optional-attribute-name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=MySqlDS</depends> <attribute name="SqlProperties">
|
Como un paso adicional creamos otro datasource para la base ejemplo del proyecto, creamos el archivo is346-ds.xml y lo ponemos tambien en el directorio deploy.
1:<?xml version="1.0" encoding="UTF-8"?> 2: 3:<!-- $Id: mysql-ds.xml,v 1.3.2.1 2004/12/01 11:46:00 schrouf Exp $ --> 4:<!-- Datasource config for MySQL using 3.0.9 available from: 5:http://www.mysql.com/downloads/api-jdbc-stable.html 6:--> 7: 8:<datasources> 9: <local-tx-datasource> 10: <jndi-name>IS346DS</jndi-name> 11: <connection-url>jdbc:mysql://localhost:9097/is346</connection-url> 12: <driver-class>com.mysql.jdbc.Driver</driver-class> 13: <user-name>root</user-name> 14: <password>lolo</password> 15: <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> 16: <!-- sql to call when connection is created 17: <new-connection-sql>some arbitrary sql</new-connection-sql> 18: --> 19: <!-- sql to call on an existing pooled connection when it is obtained from pool 20: <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql> 21: --> 22: 23: <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) --> 24: <metadata> 25: <type-mapping>mySQL</type-mapping> 26: </metadata> 27: </local-tx-datasource> 28:</datasources> 29: |
Antes de arrancar el jboss es importante levantar siempre primero el dbms, y en este caso crear las bases por ser la primera vez.
digital@localhost:~/mysql> ./mysql.server start digital@localhost:~/mysql> bin/mysql -u root -p mysql Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.1.9-max-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database jbossdb; Query OK, 1 row affected (0.03 sec) mysql> create database is346; Query OK, 1 row affected (0.03 sec) |
Ahora si, podemos levantar el contenedor.
digital@localhost:~/jboss/bin> ./run.sh JBoss Bootstrap Environment JBOSS_HOME: /home/digital/jboss JAVA: /opt/java/j2sdk/bin/java JAVA_OPTS: -server -Xms128m -Xmx128m -Dprogram.name=run.sh CLASSPATH: /home/digital/jboss/bin/run.jar:/opt/java/j2sdk/lib/tools.jar ========================================================================= 11:36:16,161 INFO [Server] Starting JBoss (MX MicroKernel)... 11:36:16,163 INFO [Server] Release ID: JBoss [Zion] 4.0.1sp1 (build: CVSTag=JBoss_4_0_1_SP1 date=200502160314) 11:36:16,164 INFO [Server] Home Dir: /home/digital/jboss 11:36:16,165 INFO [Server] Home URL: file:/home/digital/jboss/ 11:36:16,165 INFO [Server] Library URL: file:/home/digital/jboss/lib/ 11:36:16,167 INFO [Server] Patch URL: null 11:36:16,168 INFO [Server] Server Name: default 11:36:16,168 INFO [Server] Server Home Dir: /home/digital/jboss/server/default 11:36:16,169 INFO [Server] Server Home URL: file:/home/digital/jboss/server/default/ 11:36:16,170 INFO [Server] Server Data Dir: /home/digital/jboss/server/default/data 11:36:16,171 INFO [Server] Server Temp Dir: /home/digital/jboss/server/default/tmp 11:36:16,171 INFO [Server] Server Config URL: file:/home/digital/jboss/server/default/conf/ 11:36:16,172 INFO [Server] Server Library URL: file:/home/digital/jboss/server/default/lib/ 11:36:16,172 INFO [Server] Root Deployment Filename: jboss-service.xml 11:36:16,178 INFO [Server] Starting General Purpose Architecture (GPA)... 11:36:17,286 INFO [ServerInfo] Java version: 1.4.2_07,Sun Microsystems Inc. 11:36:17,286 INFO [ServerInfo] Java VM: Java HotSpot(TM) Server VM 1.4.2_07-b05,Sun Microsystems Inc. 11:36:17,287 INFO [ServerInfo] OS-System: Linux 2.6.8-24.11-default,i386 11:36:18,431 INFO [Server] Core system initialized 11:36:24,833 INFO [Log4jService$URLWatchTimerTask] Configuring from URL: resource:log4j.xml 11:36:25,177 INFO [WebService] Using RMI server codebase: http://localhost:8083/ 11:36:25,727 INFO [NamingService] Started jndi bootstrap jnpPort=1099, rmiPort=1098, backlog=50, bindAddress=/0.0.0.0, Client SocketFactory=null, Server SocketFactory=org.jboss.net.sockets.DefaultSocketFactory@ad093076 11:36:40,597 INFO [Embedded] Catalina naming disabled 11:36:43,591 INFO [Http11Protocol] Initializing Coyote HTTP/1.1 on http-0.0.0.0-8080 11:36:43,794 INFO [Catalina] Initialization processed in 2749 ms 11:36:43,795 INFO [StandardService] Starting service jboss.web 11:36:43,802 INFO [StandardEngine] Starting Servlet Engine: Apache Tomcat/5.0.28 11:36:43,943 INFO [StandardHost] XML validation disabled 11:36:43,999 INFO [Catalina] Server startup in 204 ms 11:36:44,623 INFO [TomcatDeployer] deploy, ctxPath=/invoker, warUrl=file:/home/digital/jboss/server/default/deploy/http-invoker.sar/invoker.war/ 11:36:47,823 INFO [TomcatDeployer] deploy, ctxPath=/ws4ee, warUrl=file:/home/digital/jboss/server/default/tmp/deploy/tmp16173jboss-ws4ee.war/ 11:36:48,471 INFO [TomcatDeployer] deploy, ctxPath=/, warUrl=file:/home/digital/jboss/server/default/deploy/jbossweb-tomcat50.sar/ROOT.war/ 11:36:49,310 INFO [TomcatDeployer] deploy, ctxPath=/jbossmq-httpil, warUrl=file:/home/digital/jboss/server/default/deploy/jms/jbossmq-httpil.sar/jbossmq-httpil.war/ 11:36:58,781 INFO [MailService] Mail Service bound to java:/Mail 11:37:01,354 INFO [RARDeployment] Required license terms exist view the META-INF/ra.xml: file:/home/digital/jboss/server/default/deploy/jboss-local-jdbc.rar 11:37:02,078 INFO [RARDeployment] Required license terms exist view the META-INF/ra.xml: file:/home/digital/jboss/server/default/deploy/jboss-xa-jdbc.rar 11:37:02,750 INFO [RARDeployment] Required license terms exist view the META-INF/ra.xml: file:/home/digital/jboss/server/default/deploy/jms/jms-ra.rar 11:37:03,461 INFO [RARDeployment] Required license terms exist view the META-INF/ra.xml: file:/home/digital/jboss/server/default/deploy/mail-ra.rar 11:37:05,175 INFO [WrapperDataSourceService] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:name=IS346DS,service=DataSourceBinding to JNDI name 'java:IS346DS' 11:37:06,642 INFO [ConnectionFactoryBindingService] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:name=JmsXA,service=ConnectionFactoryBinding to JNDI name 'java:JmsXA' 11:37:07,336 INFO [WrapperDataSourceService] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:name=MySqlDS,service=DataSourceBinding to JNDI name 'java:MySqlDS' 11:37:10,718 INFO [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=file:/home/digital/jboss/server/default/deploy/jmx-console.war/ 11:37:11,581 INFO [TomcatDeployer] deploy, ctxPath=/web-console, warUrl=file:/home/digital/jboss/server/default/deploy/management/web-console.war/ 11:37:14,320 ERROR [URLDeploymentScanner] Incomplete Deployment listing: MBeans waiting for other MBeans: ObjectName: jboss.mq:service=InvocationLayer,type=HTTP state: CONFIGURED I Depend On: jboss.mq:service=Invoker jboss.web:service=WebServer Depends On Me: ObjectName: jboss:service=KeyGeneratorFactory,type=HiLo state: CONFIGURED I Depend On: jboss:service=TransactionManager jboss.jca:name=DefaultDS,service=DataSourceBinding Depends On Me: ObjectName: jboss.mq:service=StateManager state: CONFIGURED I Depend On: jboss.jca:name=DefaultDS,service=DataSourceBinding Depends On Me: jboss.mq:service=DestinationManager ObjectName: jboss.mq.destination:name=testTopic,service=Topic state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager jboss.mq:service=SecurityManager Depends On Me: ObjectName: jboss.mq.destination:name=securedTopic,service=Topic state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager jboss.mq:service=SecurityManager Depends On Me: ObjectName: jboss.mq.destination:name=testDurableTopic,service=Topic state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager jboss.mq:service=SecurityManager Depends On Me: ObjectName: jboss.mq.destination:name=testQueue,service=Queue state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager jboss.mq:service=SecurityManager Depends On Me: ObjectName: jboss.mq.destination:name=A,service=Queue state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager Depends On Me: ObjectName: jboss.mq.destination:name=B,service=Queue state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager Depends On Me: ObjectName: jboss.mq.destination:name=C,service=Queue state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager Depends On Me: ObjectName: jboss.mq.destination:name=D,service=Queue state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager Depends On Me: ObjectName: jboss.mq.destination:name=ex,service=Queue state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager Depends On Me: ObjectName: jboss.mq:service=Invoker state: CONFIGURED I Depend On: jboss.mq:service=TracingInterceptor Depends On Me: jboss.mq:service=InvocationLayer,type=HTTP jboss.mq:service=InvocationLayer,type=JVM jboss.mq:service=InvocationLayer,type=UIL2 ObjectName: jboss.mq:service=TracingInterceptor state: CONFIGURED I Depend On: jboss.mq:service=SecurityManager Depends On Me: jboss.mq:service=Invoker ObjectName: jboss.mq:service=SecurityManager state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager Depends On Me: jboss.mq.destination:name=testTopic,service=Topic jboss.mq.destination:name=securedTopic,service=Topic jboss.mq.destination:name=testDurableTopic,service=Topic jboss.mq.destination:name=testQueue,service=Queue jboss.mq:service=TracingInterceptor jboss.mq.destination:name=DLQ,service=Queue ObjectName: jboss.mq.destination:name=DLQ,service=Queue state: CONFIGURED I Depend On: jboss.mq:service=DestinationManager jboss.mq:service=SecurityManager Depends On Me: ObjectName: jboss.mq:service=InvocationLayer,type=JVM state: CONFIGURED I Depend On: jboss.mq:service=Invoker Depends On Me: ObjectName: jboss.mq:service=DestinationManager state: CONFIGURED I Depend On: jboss.mq:service=MessageCache jboss.mq:service=PersistenceManager jboss.mq:service=StateManager Depends On Me: jboss.mq.destination:name=testTopic,service=Topic jboss.mq.destination:name=securedTopic,service=Topic jboss.mq.destination:name=testDurableTopic,service=Topic jboss.mq.destination:name=testQueue,service=Queue jboss.mq.destination:name=A,service=Queue jboss.mq.destination:name=B,service=Queue jboss.mq.destination:name=C,service=Queue jboss.mq.destination:name=D,service=Queue jboss.mq.destination:name=ex,service=Queue jboss.mq:service=SecurityManager jboss.mq.destination:name=DLQ,service=Queue ObjectName: jboss.mq:service=InvocationLayer,type=UIL2 state: CONFIGURED I Depend On: jboss.mq:service=Invoker Depends On Me: MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM: ObjectName: jboss.jca:name=DefaultDS,service=DataSourceBinding state: NOTYETINSTALLED I Depend On: Depends On Me: jboss:service=KeyGeneratorFactory,type=HiLo jboss.mq:service=StateManager 11:37:14,908 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8080 11:37:15,243 INFO [ChannelSocket] JK2: ajp13 listening on /0.0.0.0:8009 11:37:15,253 INFO [JkMain] Jk running ID=0 time=0/108 config=null 11:37:15,319 INFO [Server] JBoss (MX MicroKernel) [4.0.1sp1 (build: CVSTag=JBoss_4_0_1_SP1 date=200502160314)] Started in58s:610ms |
Tablas creadas por JBoss para su propio funcionamiento
mysql> use jbossdb; mysql> |
Ahora a desarrollar con JBuilder
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
|
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
|
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
|
|||
![]() |
|||
![]() |
|||
|
|||
|
|||
![]() |
|||
Agregando un finder nuevo ![]() |
|||
![]() |
|||
![]() |
|||
![]() |
|||
EJB QL Examples SELECT DISTINCT OBJECT(p) Data retrieved: The players with the position specified by the finder method's parameter. SELECT DISTINCT OBJECT(p) Data retrieved: The players with the specified position and name. SELECT DISTINCT OBJECT(p) Data retrieved: The players whose salaries fall within the range of the specified salaries. ?
SELECT DISTINCT OBJECT(p) Data retrieved: The players whose teams belong to the specified city.
SELECT DISTINCT OBJECT(p) Data retrieved: The players who participate in the specified sport.
Where Operators ...BETWEEN 8 AND 16 ....Address.state IN ('FL','TX',?1) ...IS NULL ....IS NOT NULL ...crs.reservations IS NOT EMPTY ..phone.number LIKE '222%' Functional Expressions CONCAT(String1, String2) LENGTH(String) LOCATE(String1, String2 [,start]) SUBSTRING(String1, start, length) ABS(number) SQRT(double) MOD(int,int) Aggregate functions (select) COUNT(identifier or path expression) MAX(path expresssion), MIN (path expression) AVG(numeric), SUM(numeric)
|