我有一个TranslateServlet需要一些文本,创建一个Cracker类的实例并调用一个getCrackedResult返回HashMap键和值的方法:
public class TranslateServlet extends HttpServlet {
public static void main(String[] args) {
Cracker cracker = new Cracker("German", "English");
HashMap<String, ArrayList<Cracker.EntrySet<String, ArrayList<String>>>> crackedResults =
cracker.getCrackedResult("Ich bin");
for (String category: crackedResults.keySet()) {
System.out.print(category); //works fine
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
Cracker cracker = new Cracker("German", "English");
HashMap<String, ArrayList<Cracker.EntrySet<String, ArrayList<String>>>> crackedResults =
cracker.getCrackedResult("Ich bin");
for (String category: crackedResults.keySet()) {
response.getWriter().print(category); //doesn't work
}
response.getWriter().print("DONE"); //works fine
}
}
但是,虽然迭代方法HashMap内部main工作正常,但尝试通过方法获取键值时doPost(),我只得到DONE输出,没有其他值。为什么??
编辑: “不起作用”意味着不输出类别。如果main方法输出“Dog”、“Cat”,jsp页面只输出“Done”,而不是“Dog”、“Cat”、“Done”。
我的问题有什么问题足以关闭它?也感谢匿名投票者。
编辑:我检查了tomcat的日志,java.io.FileNotFoundException: some_folder/some_file.bin每次调用servlet时都会出错。
我意识到该函数getCrackedResult使用了这样的本地文件:
InputStream inputPOS = new FileInputStream("some_folder/some_file.bin");
我尝试将文件移动到WEB-INF并更改文件路径:
InputStream inputPOS = new FileInputStream("WEB-INF/some_folder/some_file.bin");
但我仍然得到例外:java.io.FileNotFoundException: WEB-INF/some_folder/some_file.bin.
哔哔one
梦里花落0921
相关分类