给你一个成功的写法:..................<Context path="/OST" docBase="OST" debug="0" reloadable="true">
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost:3306/tourism_db"
userTable="attraction" userNameCol="user_id"
userCredCol="password" userRoleTable="user_role"
roleNameCol="role_name" />
</Context>
</Host> </Engine> </Service></Server>
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost:3306/tourism_db"
userTable="attraction" userNameCol="user_id"
userCredCol="password" userRoleTable="user_role"
roleNameCol="role_name" />
</Context>
</Host> </Engine> </Service></Server>
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost:3306/tourism_db"
userTable="attraction" userNameCol="user_id"
userCredCol="password" userRoleTable="user_role"
roleNameCol="role_name" />
改成:<value>jdbc:mysql://127.0.0.1:3306/bookdb?autoReconnection=true</value>试试
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>x</user-name>
<password>y</password>
</local-tx-datasource></datasources>
<Context path="fs" docBase="fs" debug="5" reloadable="true" crossContext="true">
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/BookDB</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/bookdb</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>pass</password>
</local-tx-datasource>
</datasources>
</Context>
<Context path="/fs" docBase="fs" debug="0" reloadable="true" />
我要是这样做,就会把目录找不到
只有改成
<Context path="fs" docBase="fs" debug="0" reloadable="true" />
才能通过.
我用的是jndi<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>x</user-name>
<password>y</password>
</local-tx-datasource>
</datasources>package database;import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class jndiJDBC {
private Connection conn;
private ResultSet rs;
private Statement stmt;
private DataSource ds;
private String jndi;
public void setJndi(String newJndi){
this.jndi = newJndi;
}
public String getJndi(){
return this.jndi;
}
public jndiJDBC(){
this.jndi = "java:/MySqlDS";
}
public void init(){
try{
Context initCtx = new InitialContext();
ds = (DataSource)initCtx.lookup(this.jndi);
if(ds!=null){
conn =ds.getConnection();
}
}catch(Exception e){
System.out.println("Connection Error:"+e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
if (conn == null) {
this.init();
}
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch (SQLException se) {
System.err.print("ExecuteQuery Error:" + se.getMessage());
return null;
}
return rs;
}
javabean没问题,在jboss和tomcat里都可以用
把你的javabean贴出来看看?
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.DataSource" %>
<%@ page import="javax.naming.*" %>
<%@ page contentType="text/html;charset=GB2312" %><html>
<head>
<title>BookList</title>
</head>
<body>
<%
Connection con;
Statement stmt;
ResultSet rs;
Context initCtx = new InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/TestDB");
System.out.println("lookup");
con = ds.getConnection();
System.out.println("getConnection");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT id, name, title, price FROM books");
out.println("<table border=1 width=400>");
while (rs.next()){
String col1 = rs.getString(1);
String col2 = rs.getString(2);
String col3 = rs.getString(3);
float col4 = rs.getFloat(4);
out.println("<tr><td>"+col1+"</td><td>"+col2+"</td><td>"+col3+"</td><td>"+col4+"</td></tr>");
}
out.println("</table>");
rs.close();
stmt.close();
con.close();
%>
</body>
</html>
name -->The name of the resource link to be created, relative to the java:comp/env context.?
type -->The fully qualified Java class name expected by the web application when it performs a lookup for this resource link.
在最后那个javax.sql.DataSourcer里多了个字母'r'