Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

openejb-jar.xml define las características específicas de EJBs sobre Geronimo. Tiene tanto información de EJB como sus relaciones. Además proporciona una liga al pool de base de datos de la aplicación. Entity Beans en la aplicación dependen de esa pool. Nota que la parte final de este archivo define una Container Managed Relation (CMR) 1-N entre los Beans Customer y Account.

Code Block
xml
xml
borderStylesolid
titleopenejb-jar.xmlxml
<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1">
	<dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
		<dep:moduleId>
			<dep:groupId>default</dep:groupId>
			<dep:artifactId>BankEJB</dep:artifactId>
			<dep:version>1.0</dep:version>
			<dep:type>car</dep:type>
		</dep:moduleId>
		<dep:dependencies/>
		<dep:hidden-classes/>
		<dep:non-overridable-classes/>
	</dep:environment>
	<cmp-connection-factory>
		<resource-link>BankPool</resource-link>
	</cmp-connection-factory>
	<enterprise-beans>
		<session>
			<ejb-name>BankManagerFacadeBean</ejb-name>
			<jndi-name>org.apache.geronimo.samples.bank.ejb.BankManagerFacadeBean</jndi-name>
			<ejb-ref>
				<ref-name>ejb/Customer</ref-name>
				<ejb-link>Customer</ejb-link>
			</ejb-ref>
			<ejb-ref>
				<ref-name>ejb/Account</ref-name>
				<ejb-link>Account</ejb-link>
			</ejb-ref>
			<ejb-ref>
				<ref-name>ejb/ExchangeRate</ref-name>
				<ejb-link>ExchangeRate</ejb-link>
			</ejb-ref>
		</session>
	  	
		<entity>
			<ejb-name>Account</ejb-name>
			<local-jndi-name>AccountLocalEntity</local-jndi-name>
			<table-name>Account</table-name>
			
			<cmp-field-mapping>
				<cmp-field-name>accountNumber</cmp-field-name>
				<table-column>ACC_NO</table-column>
			</cmp-field-mapping>
			
			<cmp-field-mapping>
				<cmp-field-name>accountType</cmp-field-name>
				<table-column>ACC_TYPE</table-column>
			</cmp-field-mapping>
			
			<cmp-field-mapping>
				<cmp-field-name>customer</cmp-field-name>
				<table-column>CUSTID_FK</table-column>
			</cmp-field-mapping>
			
			<cmp-field-mapping>
				<cmp-field-name>balance</cmp-field-name>
				<table-column>BALANCE</table-column>
			</cmp-field-mapping>
			
			<resource-ref>
				<ref-name>jdbc/BankDataSource</ref-name>
				<resource-link>BankPool</resource-link>
			</resource-ref>
		</entity>
	  	
		<entity>
			<ejb-name>Customer</ejb-name>
			<local-jndi-name>CustomerLocalEntity</local-jndi-name>
			<table-name>Customer</table-name>
			
			<cmp-field-mapping>
				<cmp-field-name>customerId</cmp-field-name>
				<table-column>CUST_ID</table-column>
			</cmp-field-mapping>
			
			<cmp-field-mapping>
				<cmp-field-name>customerName</cmp-field-name>
				<table-column>CUST_NAME</table-column>
			</cmp-field-mapping>
			
			<resource-ref>
				<ref-name>jdbc/BankDataSource</ref-name>
				<resource-link>BankPool</resource-link>
			</resource-ref>
		</entity>
	  	
		<entity>
			<ejb-name>ExchangeRate</ejb-name>
			<local-jndi-name>ExchangeRate</local-jndi-name>
			<resource-ref>
				<ref-name>jdbc/BankDataSource</ref-name>
				<resource-link>BankPool</resource-link>
			</resource-ref>
		</entity>
	</enterprise-beans>

	<relationships>
		<ejb-relation>
			<ejb-relation-name>Customer-Account</ejb-relation-name>
			<ejb-relationship-role>
				<ejb-relationship-role-name>Account-to-Customer</ejb-relationship-role-name>
				<relationship-role-source>
					<ejb-name>Account</ejb-name>
				</relationship-role-source>
				<cmr-field>
					<cmr-field-name>customer</cmr-field-name>
				</cmr-field>
				<foreign-key-column-on-source/>
				<role-mapping>
					<cmr-field-mapping>
						<key-column>CUST_ID</key-column>
						<foreign-key-column>CUSTID_FK</foreign-key-column>
					</cmr-field-mapping>
				</role-mapping>
			</ejb-relationship-role>
		</ejb-relation>

	</relationships>

</openejb-jar>

BankPool.xml es un archivo de configuración típico de una pool de base de datos, la cual se conectará a BankDB, definida en el servidor de base de datos incluído: Derby. Entity beans de la aplicación se refieren a la base de datos mediante su archivo de configuración.

Code Block
xml
xml
borderStylesolid
titleBankPool.xmlxml
<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.1">
	<dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
		<dep:moduleId>
			<dep:groupId>console.dbpool</dep:groupId>
			<dep:artifactId>BankPool</dep:artifactId>
			<dep:version>1.0</dep:version>
			<dep:type>rar</dep:type>
		</dep:moduleId>
		<dep:dependencies>
			<dep:dependency>
				<dep:groupId>org.apache.derby</dep:groupId>
				<dep:artifactId>derby</dep:artifactId>
				<dep:version>10.1.1.0</dep:version>
				<dep:type>jar</dep:type>
			</dep:dependency>
		</dep:dependencies>
	</dep:environment>
	<resourceadapter>
		<outbound-resourceadapter>
			<connection-definition>
				<connectionfactory-interface>javax.sql.DataSource</connectionfactory-interface>
				<connectiondefinition-instance>
					<name>BankPool</name>
					<config-property-setting name="Driver">org.apache.derby.jdbc.EmbeddedDriver</config-property-setting>
					<config-property-setting name="UserName">app</config-property-setting>
					<config-property-setting name="ConnectionURL">jdbc:derby:BankDB</config-property-setting>
					<connectionmanager>
						<local-transaction/>
						<single-pool>
							<max-size>10</max-size>
							<min-size>0</min-size>
							<match-one/>
						</single-pool>
					</connectionmanager>
				</connectiondefinition-instance>
			</connection-definition>
		</outbound-resourceadapter>
	</resourceadapter>
</connector>

geronimo-application.xml y application.xml definen los componentes principales del EAR. La información de archivos de los componentes EJB y Web se proporcionan en estos archivos. Además, estos dos archivos XML definen el uso del pool de base de datos en esta aplicación, indicándolo mediante tranql-connector-1.2.rar y BankPool.xml.

Code Block
xml
xml
borderStylesolid
titlegeronimo-application.xmlxml
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.1">
	<dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
		<dep:moduleId>
			<dep:groupId>default</dep:groupId>
			<dep:artifactId>Bank</dep:artifactId>
			<dep:version>1.0</dep:version>
			<dep:type>car</dep:type>
		</dep:moduleId>
		<dep:dependencies/>
		<dep:hidden-classes/>
		<dep:non-overridable-classes/>
	</dep:environment>
	<module>
		<connector>tranql-connector-1.2.rar</connector>
		<alt-dd>BankPool.xml</alt-dd>
	</module>
</application>
Code Block
xml
xml
borderStylesolid
titleapplication.xmlxml
<?xml version="1.0" encoding="UTF-8"?>
<application
		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/application_1_4.xsd"
		version="1.4">
	<module>
		<ejb>BankEJB.jar</ejb>
	</module>
	<module>
		<web>
			<web-uri>BankWeb.war</web-uri>
			<context-root>/Bank</context-root>
		</web>
	</module>
	<module>
		<connector>tranql-connector-1.2.rar</connector>
	</module>
</application>

---------------------------------------> FALTA TRADUCCION
Since Banking Web Application is a part of EAR, the BankManagerFacade Session Bean will be reffered as a local interface. Those additional configuration information required for the EJB reference can be found in the web.xml.

Code Block
xml
xml
borderStylesolid
titleweb.xmlxml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
		version="2.4">
	
	<welcome-file-list>
		<welcome-file>/jsp/index.jsp</welcome-file>
	</welcome-file-list>

	<servlet>
		<display-name>CustomerServiceServlet</display-name>
		<servlet-name>CustomerServiceServlet</servlet-name>
		<servlet-class>org.apache.geronimo.samples.bank.web.CustomerServiceServlet</servlet-class>
	</servlet>
	
	<servlet>
		<display-name>CommonServiceServlet</display-name>
		<servlet-name>CommonServiceServlet</servlet-name>
		<servlet-class>org.apache.geronimo.samples.bank.web.CommonServiceServlet</servlet-class>
	</servlet>
  	
	<servlet-mapping>
		<servlet-name>CustomerServiceServlet</servlet-name>
		<url-pattern>/customer_info</url-pattern>
	</servlet-mapping>
	
	<servlet-mapping>
		<servlet-name>CommonServiceServlet</servlet-name>
		<url-pattern>/exchange_rates</url-pattern>
	</servlet-mapping>
	
	
	<!-- To refer local EJB's  -->
	<ejb-local-ref>
		<ejb-ref-name>ejb/BankManagerFacade</ejb-ref-name>
		<ejb-ref-type>Session</ejb-ref-type>
		<local-home>org.apache.geronimo.samples.bank.ejb.BankManagerFacadeHomeLocal</local-home>
		<local>org.apache.geronimo.samples.bank.ejb.BankManagerFacadeLocal</local>
		<ejb-link>BankManagerFacadeBean</ejb-link>
	</ejb-local-ref>

</web-app>

Account Balance Modifier swing application refers the same BankManagerFacade Session bean as a remotely refer EJB. It's configuration information can be found in the bank_client.properties file.

Code Block
xml
xml
borderStylesolid
titlebank_client.propertiesxml
java.naming.factory.initial=org.openejb.client.RemoteInitialContextFactory
java.naming.provider.url=localhost:4201
java.naming.security.principal=system
java.naming.security.credentials=manager
jndi.bankManager=org.apache.geronimo.samples.bank.ejb.BankManagerFacadeBean

...