aqui les dejo mi codigo java.
import java.io.PrintStream;
import java.sql.*;
import javax.naming.*;
import javax.servlet.http.HttpServlet;
import javax.sql.*;
public class DBC extends HttpServlet
{
//private static String defaultDatabase ="java:comp/env/jdbc/
TailoyAS400";
//private static DataSource ds = null;
public static Connection DBConect() throws SQLException{
Connection conn = null;
DataSource ds = null;
try{
if (ds == null) {
Context ctx = new InitialContext();
if(ctx==null){
System.out.println("Falla el contexto");}
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/
Aplicacion");
}
System.out.println("el valor del DataSource:
"+ds.toString());
////*********************************************************
*esto es normal que devuelva este valor el DataSource:
*el valor del DataSource: com.evermind.sql.OrionCMTDataSource@57
**************************************************************//////
//synchronized (ds)
conn = ds.getConnection();
System.out.println("la coneccion: "+conn.toString());
} catch(NamingException e) {
e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
////**aqui es donde me sale el error, este es el error que me sale:
****java.sql.SQLException: Excepción de E/S: The Network Adapter could
not establish the ***connection
*////////////////
} catch(Exception e) {
e.printStackTrace();
}
return conn;
}
}
Creo que el codigo del web.xml y server.xml esta bien por eso no lo
pongo.
Gracias
Chequea la conectividad desde el server a la base de datos, que
resuelva bien el hostname, que el server este levantado, tener bien el
puerto, etc etc.
ahora ya borre el DataSource por defecto que esta en el Jdeveloper.
y me sale el siguiente error:
"javax.naming.NamingException: Error instantiating web-app JNDI-
context: No location specified for resource-ref jdbc/Aplicacion"
no veo ningun error en mis codigos.
Este es el codigo de mi clase de conexion.
public class DBC extends HttpServlet
{
public DBC()
{
}
public static synchronized Connection DBConect() throws SQLException{
Connection conn = null;
DataSource ds = null;
try{
if (ds == null) {
Context ctx = new InitialContext();
if(ctx==null){
System.out.println("no hay conexion con tomcat");}
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/
Aplicacion");
//////////////*********
///////AQUI ME DA COMO VALOR ds=NULL***************
////***************************
}
conn = ds.getConnection();
} catch(NamingException e) {
e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
return conn;
}
}
Este es del web.xml:
<resource-ref>
<description>conexion</description>
<res-ref-name>jdbc/Aplicacion</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
y este codigo es del server.xml
<Context path="/Realaplicacion" docBase="Realaplicacion" debug="6"
reloadable="true" crossContext="true" useNaming="true">
<Logger className ="org.apache.catalina.logger.FileLogger"
prefix="TailoyAS400_log." suffix=".txt" timestamp="true"/>
<Resource name="jdbc/Aplicacion" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Aplicacion">
<Parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</Parameter>
<Parameter>
<name>driverClassName</name>
<value>com.ibm.as400.access.AS400JDBCDriver</value>
</Parameter>
<Parameter>
<name>url</name>
<value>jdbc:as400://172.1.0.1;database name=libreria?
autoReconnect=true</value>
</Parameter>
<Parameter>
<name>maxActive</name>
<value>100</value>
</Parameter>
<Parameter>
<name>maxIdle</name>
<value>30</value>
</Parameter>
<Parameter>
<name>maxWait</name>
<value>10000</value>
</Parameter>
<Parameter>
<name>username</name>
<value>user</value>
</Parameter>
<Parameter>
<name>password</name>
<value>passw</value>
</Parameter>
<Parameter>
<name>removeAbandoned</name>
<value>true</value>
</Parameter>
<Parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</Parameter>
<Parameter>
<name>logAbandoned</name>
<value>true</value>
</Parameter>
</ResourceParams>
</Context>
Gracias