我有一個(gè)TranslateServlet需要一些文本,創(chuàng)建一個(gè)Cracker類的實(shí)例并調(diào)用一個(gè)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內(nèi)部main工作正常,但嘗試通過方法獲取鍵值時(shí)doPost(),我只得到DONE輸出,沒有其他值。為什么??編輯: “不起作用”意味著不輸出類別。如果main方法輸出“Dog”、“Cat”,jsp頁(yè)面只輸出“Done”,而不是“Dog”、“Cat”、“Done”。我的問題有什么問題足以關(guān)閉它?也感謝匿名投票者。編輯:我檢查了tomcat的日志,java.io.FileNotFoundException: some_folder/some_file.bin每次調(diào)用servlet時(shí)都會(huì)出錯(cuò)。我意識(shí)到該函數(shù)getCrackedResult使用了這樣的本地文件:InputStream inputPOS = new FileInputStream("some_folder/some_file.bin");我嘗試將文件移動(dòng)到WEB-INF并更改文件路徑:InputStream inputPOS = new FileInputStream("WEB-INF/some_folder/some_file.bin");但我仍然得到例外:java.io.FileNotFoundException: WEB-INF/some_folder/some_file.bin.
2 回答

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
解決方案:
請(qǐng)?jiān)谡_的位置部署(?。?code>/WEB-INF/some_file/some.bin,然后您可以FileInputStream
從 servlet 環(huán)境訪問它,例如:
java.io.InputStream inS = /*httpRequest.get*/servletContext .getResourceAsStream("/WEB-INF/some_file/some.bin");

夢(mèng)里花落0921
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
現(xiàn)在,我設(shè)法修復(fù)它
InputStream inputPOS = Cracker.class.getClassLoader().getResourceAsStream("some_folder/some_file.bin");
解決方案并將some_folder/some_file.bin
兩者都放在里面
Project Root/target/classes
(這樣代碼就可以在 IDE 中運(yùn)行)
和
Project Root/WEB-INF/classes
(以便該代碼在部署在 tomcat 上時(shí)可以工作)。
添加回答
舉報(bào)
0/150
提交
取消