jsp使用poolman连接mysql数据库的问题,遇到下列问题:
我把代码贴出来:POOLMAN.XML
<?xml version="1.0" encoding="UTF-8"?><poolman> <management-mode>local</management-mode> <datasource> <dbname>default</dbname>
<jndiName>jndi-default</jndiName>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/hoteldb</url>
<username>hotel</username>
<password>123456</password>
<minimumSize>5</minimumSize>
<maximumSize>50</maximumSize>
<connectionTimeout>2400</connectionTimeout>
<userTimeout>600</userTimeout>
<logFile>E:/log/poolman.log</logFile>
<debugging>false</debugging>
<shrinkBy>30</shrinkBy>
<skimmerFrequency>300</skimmerFrequency> </datasource>
</poolman>
测试的JAVA类:
import com.codestudio.util.*; import java.io.File;
import java.sql.*; public class DbCtrl {
private static SQLManager sqlman;// = SQLManager.getInstance("C:/man.xml");
public DbCtrl(){
if(sqlman == null){
sqlman = SQLManager.getInstance();
}
} public static Connection init(){
Connection con = null;
try{
con = sqlman.requestConnection("default");
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public static void main(String[] args) {
PreparedStatement pstmt = null;
Statement stmt = null;
ResultSet rst = null;
Connection con = null; DbCtrl cd2 = new DbCtrl();
File f = new File("C:/man.xml");
String s = f.getAbsolutePath();
f.getName();
System.out.println( f.getName());
sqlman = SQLManager.getInstance("C:\\man.xml");
if(sqlman == null)
{
System.out.println( "sqlman == null");
return;
}
System.out.println( sqlman);
con=cd2.init();
try{
pstmt = con.prepareStatement("select * from users "); }catch(Exception e ){
e.printStackTrace();
System.exit(0);
}
System.out.println("OK"); }
} 在运行时遇到的问题:man.xml
com.codestudio.util.SQLManager@42719c** ERROR: Unable to find XML file C:\poolman.xml: java.lang.NullPointerException
java.sql.SQLException: No pool named default! Check your poolman.xml** DEBUG: If the StackTrace contains an InstanceAlreadyExistsException, then you have encountered a ClassLoader linkage problem. Please email [email protected] **
at com.codestudio.util.SQLManager.requestConnection(Unknown Source)
at DbCtrl.init(DbCtrl.java:19)
at DbCtrl.main(DbCtrl.java:48)
java.lang.NullPointerException
at DbCtrl.main(DbCtrl.java:50)
为什么会报这个错,一直没搞明白?
我把代码贴出来:POOLMAN.XML
<?xml version="1.0" encoding="UTF-8"?><poolman> <management-mode>local</management-mode> <datasource> <dbname>default</dbname>
<jndiName>jndi-default</jndiName>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/hoteldb</url>
<username>hotel</username>
<password>123456</password>
<minimumSize>5</minimumSize>
<maximumSize>50</maximumSize>
<connectionTimeout>2400</connectionTimeout>
<userTimeout>600</userTimeout>
<logFile>E:/log/poolman.log</logFile>
<debugging>false</debugging>
<shrinkBy>30</shrinkBy>
<skimmerFrequency>300</skimmerFrequency> </datasource>
</poolman>
测试的JAVA类:
import com.codestudio.util.*; import java.io.File;
import java.sql.*; public class DbCtrl {
private static SQLManager sqlman;// = SQLManager.getInstance("C:/man.xml");
public DbCtrl(){
if(sqlman == null){
sqlman = SQLManager.getInstance();
}
} public static Connection init(){
Connection con = null;
try{
con = sqlman.requestConnection("default");
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public static void main(String[] args) {
PreparedStatement pstmt = null;
Statement stmt = null;
ResultSet rst = null;
Connection con = null; DbCtrl cd2 = new DbCtrl();
File f = new File("C:/man.xml");
String s = f.getAbsolutePath();
f.getName();
System.out.println( f.getName());
sqlman = SQLManager.getInstance("C:\\man.xml");
if(sqlman == null)
{
System.out.println( "sqlman == null");
return;
}
System.out.println( sqlman);
con=cd2.init();
try{
pstmt = con.prepareStatement("select * from users "); }catch(Exception e ){
e.printStackTrace();
System.exit(0);
}
System.out.println("OK"); }
} 在运行时遇到的问题:man.xml
com.codestudio.util.SQLManager@42719c** ERROR: Unable to find XML file C:\poolman.xml: java.lang.NullPointerException
java.sql.SQLException: No pool named default! Check your poolman.xml** DEBUG: If the StackTrace contains an InstanceAlreadyExistsException, then you have encountered a ClassLoader linkage problem. Please email [email protected] **
at com.codestudio.util.SQLManager.requestConnection(Unknown Source)
at DbCtrl.init(DbCtrl.java:19)
at DbCtrl.main(DbCtrl.java:48)
java.lang.NullPointerException
at DbCtrl.main(DbCtrl.java:50)
为什么会报这个错,一直没搞明白?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货