先简单的说下我的项目
J2ME 写手机客户端 读服务器的mysql数据。
我在公司的电脑(A)上面放上我的servlet 和mysql 用自己的手机能正常的应用。
但是把程序放在公司的远程服务器(B)上面就不能使用。
以下是我的DAO读取的方法
/**
 * 获得所有记录
 * @return
 */
public List<MyVO> getAll(){
List<MyVO> list = new ArrayList<MyVO>();
String sqlStr = "select * from stu";
try {
con = DAOFactory.getCon();
ps = con.prepareStatement(sqlStr);
rs = ps.executeQuery();
while(rs.next()){
MyVO mv = new MyVO();
mv.setUID(rs.getInt("UID"));
mv.setUname(rs.getString("Uname"));
mv.setUage(rs.getInt("Uage"));
mv.setUsex(rs.getString("Usex"));
list.add(mv);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
close();
return list;

以下是我的FAOFactory类
public class DAOFactory {
private static MyDAO md;
private static String driver,url,userName,userPass;

public static MyDAO getMyDAO(){
if(md == null)md = new MyDAO();
return md;
}

public static Properties getProperties(String name){
Properties properties= new Properties();
InputStream is = DAOFactory.class.getClassLoader().getResourceAsStream("/config/"+name+".properties");
try {
properties.load(is);

is.close();
is = null;
} catch (IOException e) {
// TODO Auto-generated catch block

e.printStackTrace();
properties = null;

}

return properties;
}

public static Connection getCon(){
if(driver== null){
Properties properties = getProperties("mysql");
if(properties == null){
Errors.setOK(false);
Errors.setErrorCode(3);
Errors.setErrorStr("propertie get error!");
}
driver = properties.getProperty("driver");
url = properties.getProperty("url");
userName = properties.getProperty("userName");
userPass = properties.getProperty("userPass");
System.out.println("driver:"+driver+"  url:"+url+"  userName:"+userName+"   userPass:"+userPass);
properties = null;
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block

e.printStackTrace();
}
}
try {
return DriverManager.getConnection(url, userName, userPass);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("没有获得con");
return null;

}
}放在服务器的时候具体的报错是在DAO 的getAll()评选方法里con = DAOFactory.getCon();的空指针。
我觉得是properties的读取出的问题
可是为什么在我 电脑A 做服务器就可以呢· ?
PS:
我的properties里面的用户名和密码都做了更改
数据库都是一样的  端口也是3306
我把servlet放在电脑(A)上 用servlet 远程读取 服务器上的MYSQL,用我的手机访问电脑(A)的servlet可以读到服务器(B)上的数据。大家说说我可能错在哪里呢?
服务器是freebsd
而且和公司很远 我不能去看 控制台的报错希望大家多帮帮忙,本人刚毕业工作 这方面没有什么经验··
尤其是FREEBSD。

解决方案 »

  1.   

    给的代码意义不大。先看配置文件,就你说的 properties其次自己开启调试一个个看看就可以了吧!
      

  2.   

    问题出在读取properties上面
    本机的路径· 和放在XP 上的路径都可以用· 
    放在FREEBSD上面读不到·  至今不知何解。目前还是没有办法··   暂时只能把服务器的地址写在程序里面了·