嗨,大家好,我正在做一个网络项目。我正在使用Apache Tomcat 6.0.41作为我的servlet容器。直截了当。我有一个单一类,其中存储了所有数据。它包含对从.dat文件中的硬盘驱动器读取的数据的哈希图的引用,然后从servlet访问,然后作为JsonArray发送到.jsp页面。当我使用该单线类在本地读取数据时,在公共静态主函数中,数据就在那里,我可以自由地操作它。另一方面,当servlet尝试通过相同的函数读取它时,数据根本不会被读取,并且引用指向空的哈希映射。还有一件事,我只在同事的计算机上注意到这个问题,它在我的工作正常。有什么建议 ? :)
这行代码在servlet中打印出任何内容,当我在本地调用它时,整个集合从.dat文件中读取。
System.out.println(Baza.getInstance().getMapaKorisnika().values());
因此,在getInstance()函数中调用ucitajPodatke()。
public static Baza getInstance()
{
if (instance == null)
{
instance = new Baza();
instance.ucitajPodatke();
}
return instance;
}
public void ucitajPodatke(){
try {
File file;
file = new File("korisnici.dat");
if (file.exists()) {
ObjectInputStream in = new ObjectInputStream(new FileInputStream("korisnici.dat"));
try {
mapaKorisnika = (HashMap<String, Korisnik>) in.readObject();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
in.close();
} }
然后有一个吸气剂:
public HashMap<String, Korisnik> getMapaKorisnika() {
return mapaKorisnika;
}