Запись в веб-журнал (текстовый файл) Java EE - PullRequest
0 голосов
/ 13 марта 2012

У меня реальная проблема с созданием текстового файла для каждой операции для хранения информации, специфичной для операции, независимо от того, какой подход я выбрал, я не могу создать текстовый файл на веб-сервере, не говоря уже о хранении информации в нем, первый пример - это то, что я хотел бы (создать и сохранить для каждой операции)

Примечание. В настоящее время я пытаюсь сделать это в сервлете для целей тестирования. Помощь очень ценится.

 try {
               FileWriter fstream = new FileWriter("out.txt");
                BufferedWriter out = new BufferedWriter(fstream);
                out.write("test");
                out.close();
            } catch (Exception ex) {
                 System.out.println(ex);
            }

Другой подход

 try {

            URL                url; 
            URLConnection      urlConn; 
            DataOutputStream   dos;
            DataInputStream dis;

            url = new URL("http://localhost:8080/" + request.getContextPath() + "/tmp/myfile.txt");
            System.out.println(url);
            urlConn = url.openConnection(); 
            urlConn.setDoInput(true); 
            urlConn.setDoOutput(true); 
            urlConn.setUseCaches(false); 
            urlConn.setRequestProperty ("Content-Type", "text/plain");

            dos = new DataOutputStream (urlConn.getOutputStream()); 
            dos.writeUTF("test");
            dos.flush(); 
            dos.close();

            //to test
            dis = new DataInputStream(urlConn.getInputStream()); 
            String s = dis.readLine(); 
            System.out.println(s);
            dis.close(); 

     } catch(Exception ex) {
         System.out.println(ex);
     }

1 Ответ

1 голос
/ 13 марта 2012

Не знаю, почему вы хотите сделать это так; уже есть надежные решения для ведения журналов и базы данных.

В первом случае это почти наверняка создание файла, если вы не получаете исключения, вы просто не знаете, где он находится. Используйте либо абсолютный путь к известному доступному местоположению, либо что-то относительно самого приложения, используя .getRealPath.

(Принимая во внимание, что попытка записи в относительный путь приложения не будет работать, если вы развертываете войну.)

Во втором случае не знаю, почему вы подумали, что это сработает.

...