Erro em projeto de TCC

Olá, boa tarde.Alguém poderia me ajudar? Estou com um projeto de TCC que lê os dados da porta paralela, atualiza um db e lista num jsp.
Isto funciona, adicionando os valores no objeto evento no MySQL direitinho eu consigo listar os dados via jsp:

Public void adiciona(){ Evento evento = new Evento(); Evento.setEvento0 = ?1?; Evento.setEvento0 = ?0?; Evento.setEvento0 = ?1?; Evento.setEvento0 = ?1?; Evento.setEvento0 = ?o?; This.session.save(evento) }
Só que isto é só um teste. Eu preciso pegar os valores do Evento de outra classe, tipo assim:

Public void adiciona(){ Evento evento = new Evento(); IotesteLogic teste = new IotesteLogic(); evento = teste.readLogic(); This.session.save(evento) }
Entendeu? Eu preciso que os dados do objeto evento venham da classe que faz a leitura da porta paralela. Esta leitura funciona, só que ela está numa classe que tem main (desktop). Eu mando executar no Eclipse e ela roda e lê os valores da porta direitinho ou seja, desktop a partir do main, não tem problema algum. Só que eu preciso que tudo funcione a partir de uma chamada do adiciona. Aí eu não consigo chamar a partir do main não né (como eu faço num desktop)? E aí, como eu faço para instanciá-la nesta situação?

Segue a classe que faz a leitura:

[code]package logic;
import java.awt.Toolkit;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import jnpout32.pPort;
import modelo.Evento;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.vraptor.annotations.Component;

import util.HibernateUtil;
import dao.EventoDao;

public class IotesteLogic{
private List eventos;
private static Evento e;

    static short datum;
    static short Addr;
         static pPort lpt;
        
        
static void do_read()
{
      // Read from the port
      datum = (short) lpt.input(Addr);

     
 }

static Evento readLogic()
{
String leitura0;
String leitura1;
String leitura2;
String leitura3;
String leitura4;
Converter converter = new Converter();

      // Try to read 0x378..0x37F, LPT1:
      for (Addr=0x379; (Addr<0x37a); Addr++) {

           //Read from the port
           datum = (short) lpt.input(Addr);
        int aByte = (datum & 248);
               aByte = (aByte ^ 128);
               System.out.println(aByte);
               System.out.println("Input from parallel port: "
                                  + converter.decToBinary(aByte));
               String str = converter.decToBinary(aByte);
               
                        leitura0 = str.substring(0, 1);
                        leitura1 = str.substring(1, 2);
                        leitura2 = str.substring(2, 3);
                        leitura3 = str.substring(3, 4);
                        leitura4 = str.substring(4, 5);
                        System.out.println(leitura0);
               
               Evento e = new Evento();
               e.setEvento0(leitura0);
               e.setEvento1(leitura1);
               e.setEvento2(leitura2);
               e.setEvento3(leitura3);
               e.setEvento4(leitura4);
               System.out.println("evento 2:" + e.getEvento2());
               
     }
      return e;
    }
      
 public  static void main(String args[])
 {
      new  IotesteLogic();
         lpt = new pPort();

      // Try to read 0x378..0x37F, LPT1:

  //     do_read_range();


 // And read back to verify
 do_read();

 //  One more time, different value
 datum=0xAA;

 // And read back to verify
 do_read();

 // etc...

 Addr++;
 do_read();

 Addr--;
 do_read();

 readLogic();

}
 public void formulario() {
 }

     public List<Evento> getEventos() {
               return eventos;
     }

     public Evento getE() {
               return e;
     }

     public void setE(Evento e) {
               this.e = e;
     }

}[/code]
Preciso que os dados que vão popular o evento venham daqui… Se puderem me ajudar agradeço. A conclusão de meu TCC tá dependendo disto.