Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

geronimo-web.xmlweb.xml ファイルによって、アプリケーションはデータソースを定義します。geronimo-web.xml は EAR ファイルに含まれ、データベース・プールへのリンクを持ちます。

Code Block
xml
borderStylesolid
titlegeronimo-web.xmlborderStylesolid
xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
	xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">

	<environment>
		<moduleId>
			<groupId>${pom.groupId}</groupId>
			<artifactId>${pom.artifactId}</artifactId>
			<version>${version}</version>
                        <type>war</type>
		</moduleId>
		<dependencies></dependencies>
	</environment>

	<context-root>/inventory</context-root>

	<!-- define a reference name to the db pool-->
	<resource-ref>
        <ref-name>jdbc/InventoryDS</ref-name>
        <resource-link>InventoryPool</resource-link>
    </resource-ref>
</web-app>

以下に Inventory アプリケーションの web.xml を示します。データソースを作成する際に利用される geronimo-web.xml と同じ名前を利用しています。

Code Block
xml
borderStylesolid
titleweb.xmlborderStylesolid
xml
<?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>index.html</welcome-file>
  	</welcome-file-list>

  	<servlet>
	    <display-name>AddItemServlet</display-name>
	    <servlet-name>AddItemServlet</servlet-name>
	    <servlet-class>org.apache.geronimo.samples.inventory.web.AddItemServlet</servlet-class>
  	</servlet>
  	<servlet>
	    <display-name>IssueingServlet</display-name>
	    <servlet-name>IssueingServlet</servlet-name>
	    <servlet-class>org.apache.geronimo.samples.inventory.web.IssueingServlet</servlet-class>
	</servlet>
	<servlet>
	    <display-name>RecievingServlet</display-name>
	    <servlet-name>RecievingServlet</servlet-name>
	    <servlet-class>org.apache.geronimo.samples.inventory.web.RecievingServlet</servlet-class>
	</servlet>

  	<servlet-mapping>
	    <servlet-name>AddItemServlet</servlet-name>
	    <url-pattern>/add_item</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
	    <servlet-name>IssueingServlet</servlet-name>
	    <url-pattern>/issue</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
	    <servlet-name>RecievingServlet</servlet-name>
	    <url-pattern>/recv</url-pattern>
    </servlet-mapping>

    <!-- reference name exposed as a datasource -->
    <resource-ref>
    	<res-ref-name>jdbc/InventoryDS</res-ref-name>
    	<res-type>javax.sql.DataSource</res-type>
    	<res-auth>Container</res-auth>
    	<res-sharing-scope>Shareable</res-sharing-scope>
  	</resource-ref>
</web-app>

...

次の重要なアプリケーションの記述はソースコードから定義されたデータソースへ接続するものです。これは DBManager クラスとして扱われます。 

Code Block
java
borderStylesolid
titleDBManager.javaborderStylesolid
java
public static Connection getConnection(){
	Connection con = null;
	try {
		Context context = new InitialContext();
		DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/InventoryDS");
		con = ds.getConnection();
	} catch (NamingException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return con;
}

...

Apache Geronimo サーバーを始動した後、 Geronimo コンソールへログインし、以下の手順により InventoryDB を作成してください。

No Format
borderStylesolid
titleInventoryDB.sqlborderStylesolid
CREATE TABLE item(
	item_id VARCHAR(10) PRIMARY KEY,
	item_name VARCHAR(25),
	description VARCHAR(100)
);

CREATE TABLE item_master(
	item_id VARCHAR(10) PRIMARY KEY,
	quantity INTEGER
);

INSERT INTO item VALUES('001', 'Item 1', 'Test Item 1');
INSERT INTO item VALUES('002', 'Item 2', 'Test Item 2');
INSERT INTO item VALUES('003', 'Item 3', 'Test Item 3');
INSERT INTO item VALUES('004', 'Item 4', 'Test Item 4');


INSERT INTO item_master VALUES('001', 12);
INSERT INTO item_master VALUES('002', 8);
INSERT INTO item_master VALUES('003', 49);
INSERT INTO item_master VALUES('004', 34);

...