Нет ответа на вызов классов внутри сервлета - PullRequest
0 голосов
/ 09 декабря 2011

Изменено

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

package api;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.Date;

public class DBase {

   private PrintStream outstream;

    public DBase( )
    {
        try {

            File file = new File("log");

            boolean exists = file.exists();
            if (exists) {
                outstream = new PrintStream(new FileOutputStream("log",true));
            } else {
               outstream = new PrintStream(new FileOutputStream(file,true));
            }
            System.setOut(outstream);
            System.setErr(outstream);
            System.out.println("\n" + getDateTime() + "\nInvoker: " + getClass().getName());

        } catch (FileNotFoundException ex) {
            Logger.getLogger(DBase.class.getName()).log(Level.SEVERE, null, ex);
        } 
    }

    private String getDateTime() {
      DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
      Date date = new Date();
      return dateFormat.format(date);
   }
}

Вызов класса из класса не сервлетов дает мне записи в файле журнала.

package api;


public class Test {

    public static void main(String args[]){    
              DBase dbase = new DBase();
    }
}

Здесь я ничего не получил. Это в package servlets

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            new api.Test(); //or new api.DBase();
        } finally { 
            out.close();
        }
    } 

Я использую Netbeans 6.8 и Tomcat6

1 Ответ

1 голос
/ 09 декабря 2011

Вы ничего не делаете, кроме создания экземпляра класса api.Test и возврата.

main не выполняется при создании экземпляра класса.Либо вызовите его, либо создайте метод для вызова.

Метод main предназначен скорее как точка входа для приложения, а не как метод общего назначения. может использоваться как таковое, но ИМО вводит в заблуждение.

...