Configurare Tomcat per accesso JNDI a AS400

Per accedere al DB2 tramite il connection pool di tomacat bisogna configurare tre file server.xml , web.xml e context.xml, poi bisogna rendere disponibile il packege jt400.jar nelle directory lib di tomcat.

Cominciamo col suppore di aver installato tomcat in questo percorso :

C:\Program Files\Tomcat\

Posizioniamo il jt400.jar nella C:\Program Files\Tomcat\common\lib\ per avere il driver condiviso con tutti i progetti.


Ora andiamo a configurare il server C:\Program Files\Tomcat\conf\server.xml

type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />

name="jdbc/MyAS400"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.ibm.as400.access.AS400JDBCDriver"
url="jdbc:as400://MyAS400;prompt=false;translate binary=true; extended metadata=true"
username="UTENTE"
password="PASSWORD"
maxActive="20"
maxIdle="10"
maxWait="-1"

factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
/>

Ora  configuriamo il web del progetto per comodità usiamo il progetti di esempio già precaricati C:\Program Files\Tomcat\webapps\examples\WEB-INF\web.xml

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MyAS400</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</
resource-ref>

 

Ora  configuriamo il contesto legando i due precedenti  C:\Program Files\Tomcat\conf\context.xml

<Context>

<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<ResourceLink
global="jdbc/MyAS400"
name="jdbc/MyAS400"
type="javax.sql.DataSource"/>


</Context>

Bene ora no ci resta che provare il tutto su una pagina JSP :

C:\Program Files\Tomcat\webapps\examples\jsp\Test.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/MyAS400">
select GEUSR from qgpl.ODBUS00F
</sql:query>

<html>
<head>
<title>DB Test</title>
</head>
<body>

<h2>Results</h2>

<c:forEach var="row" items="${rs.rows}">
GEUSR ${row.GEUSR}<br/>
</c:forEach>

</body>
</html>

Ora dopo aver restartato il server tomcat lanciamo

http://localhost:8080/examples/jsp/Test.jsp

Se tutto ok dovremmo vedere la nostra tabella.