|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 1232
|
[JAVA+JPA] Problema con i thread
Salve a tutti,
Classe Server Codice:
public class Server extends Thread
{
private ServerSocket Server;
public Server() throws Exception
{
Server = new ServerSocket(7004);
System.out.println("Il Server è in attesa sulla porta 7004.");
this.start();
}
public void run()
{
while(true)
{
try {
System.out.println("In attesa di Connessione.");
Socket client = Server.accept();
System.out.println("Connessione accettata da: "+
client.getInetAddress());
Thread t = new Thread(new RequestManager(client));
t.start();
}
catch(Exception e) {}
}
}
public static void main(String argv[]) throws Exception
{
//Used for log4j properties
System.setProperty("log.name","server");
new Server();
}
}
Codice:
class RequestManager implements Runnable
{
final Logger logger = LoggerFactory.getLogger(RequestManager.class.getCanonicalName());
final static String IMEI = "IMEI";
final static String DATA = "DATA";
final static String TIME = "TIME";
final static String QUIT = "QUIT";
private Socket client = null;
BufferedReader in = null;
PrintStream out = null;
private EntityManager entityManager;
public RequestManager() {}
public RequestManager(Socket clientSocket)
{
client = clientSocket;
try
{
in = new BufferedReader(
new InputStreamReader(client.getInputStream()));
out = new PrintStream(client.getOutputStream(), true);
entityManager = Persistence.createEntityManagerFactory("SensorPersistence").createEntityManager();
}
catch(Exception e1)
{
try { client.close(); }
catch(Exception e) { System.out.println(e.getMessage());}
return;
}
//this.start();
}
public void run()
{
MeasurementsManager mm = new MeasurementsManager(entityManager);
Measurement meas = new Measurement();
//setto i vari valori
mm.add(meas);
}
Codice:
public class MeasurementsManager implements Manager<Measurement>
{
private EntityManager em;
public MeasurementsManager() {
}
public MeasurementsManager(EntityManager em) {
//super();
this.em = em;
}
@Override
public boolean add(Measurement entity) {
//EntityManager em = Persistence.createEntityManagerFactory("SensorPersistence").createEntityManager();
try {
EntityTransaction t = em.getTransaction();
try {
t.begin();
em.persist(entity);
t.commit();
} finally {
if (t.isActive()) t.rollback();
}
} finally {
//em.close();
}
return true;
}
@Override
public boolean delete(Measurement entity) {
em.getTransaction().begin();
Query query = em.createQuery(
"DELETE FROM Student s WHERE s.id = ?1");
int deletedCount = query.setParameter(1, entity.getMeaId()).executeUpdate();
em.getTransaction().commit();
return deletedCount > 0;
}
@Override
public List<Measurement> getAll() {
TypedQuery<Measurement> query = em.createNamedQuery("Measurement.findAll", Measurement.class);
return query.getResultList();
}
}
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Di close() sull'EntityManager non ne fai? Ne vedo solo una commentata.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 1232
|
Si scusa, la faccio nel metodo run, dopo aver fatto tutte le operazioni. Ma nulla!
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 1232
|
Grazie all'aiuto dell'utente mone.java ho risolto. Il problema era che non invocavo la colse sul'Entity Manager Factory.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Già, volevo dirtelo anche io
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:09.



















