Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-11-2011, 14:28   #1
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
[JSP] Progetto .war con accesso al DB: su JBoss funziona su Tomcat no

Salve a tutti,

sto impazzendo di fronte al seguente problema: ho un progetto perfettamente funzionante su JBoss AS 7, ma se voglio farlo girare su tomcat non funziona.
L'applicazione è composta da delle JSP e qualche javascript e dopo aver inserito i parametri di login in un semplice form html, dovrei essere reindirizzato ad una pagina che mi mostra il risultato di una query. Ciò avviene, come dicevo, se faccio il deploy su JBoss, ma se provo a caricare lo stesso file .war nella directory CATALINA_HOME di Tomcat non mi mostra quella pagina e cade in una SQLException che sinceramente neanche capisco.

Da cosa può dipendere?
Ho già letto questo ma non sono riuscito a risolvere un bel niente. Neanche inserendo il file mysql-connector-java-5.1.18-bin.jar nella directory /usr/share/tomcat-6/lib.
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2011, 19:59   #2
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Che tipo di errore ottieni di preciso?
Quasi sicuramente ti manca qualche libreria..
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2011, 20:47   #3
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
Anche io ho pensato a qualche libreria mancante, però l'unica esterna che uso è quella del mysql jdbc connector e l'ho copiata in /usr/share/tomcat-7/lib/ (ho aggiornato tomcat, pensando che potessi risolvere ma non è cambiato nulla).

Dunque, nella pagina che non riesco a caricare ho una sezione così:

Codice:
try {
    [...]
}catch (SQLException s){
    response.sendRedirect("error.jsp");
}
Nell'intestazione ho messo:
Codice:
<%@ page errorPage="error.jsp" %>
E la jsp error.jsp è così scritta:
Codice:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page isErrorPage="true" %>
<%@ page import="java.io.PrintWriter" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Error</title>
</head>
<body>
<%
    exception.printStackTrace(new PrintWriter(out));
%>
</body>
</html>
L'errore che esce fuori è il seguente:
Codice:
exception

org.apache.jasper.JasperException: java.lang.NullPointerException
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(Unknown Source)
	org.apache.jasper.servlet.JspServletWrapper.service(Unknown Source)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(Unknown Source)
	org.apache.jasper.servlet.JspServlet.service(Unknown Source)
	javax.servlet.http.HttpServlet.service(Unknown Source)

root cause

java.lang.NullPointerException
	org.apache.jsp.error_jsp._jspService(error_jsp.java:79)
	org.apache.jasper.runtime.HttpJspBase.service(Unknown Source)
	javax.servlet.http.HttpServlet.service(Unknown Source)
	org.apache.jasper.servlet.JspServletWrapper.service(Unknown Source)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(Unknown Source)
	org.apache.jasper.servlet.JspServlet.service(Unknown Source)
	javax.servlet.http.HttpServlet.service(Unknown Source)
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2011, 14:27   #4
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Sembra tutto corretto..se per caso nella prima pagina fai il try-catch, esce fuori lo stesso risultato?
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2011, 14:40   #5
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
No aspetta, la prima pagina è quella che appunto non riesco a caricare ed è quella che sputa fuori quell'eccezione.
Per prima pagina intendo la prima jsp effettiva che carico.

Lo schema è questo:

1) login.jsp (non è altro che una pagina di puro html che fa una post a 2))
2) listato.jsp (mostra il contenuto di una tabella all'interno di input box)
3) update.jsp (è una jsp che contiene le query di update sulla tabella, che prende i valori del listato nella jsp al punto 2 tramite una POST e poi rimanda a listato.jsp)

Io non riesco a caricare listato.jsp, ed è lì che c'è il try catch. Se vado con JBoss, funziona, con Tomcat no.

Non so, è corretto usare la libreria mysql-connector-java-5.1.18-bin.jar ?
Penso di sì.

Fra l'altro sto cercando di impostare Tomcat 7 in Eclipse, per provare direttamente da lì, ma non ci riesco.
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2011, 14:50   #6
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Ok, però nel messaggio di errore sopra, non mi sembra ci siano errori di tipo SQL.

Per tomcat in eclipse dovrebbe essere facile...
Add new server, scegli tomcat 7 se esiste altrimenti scarichi l'additional adapter.

A questo punto dovrai farlo puntare alla directory in cui hai unzippato tomcat e dovrebbe andare..

ciao
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2011, 15:56   #7
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
Perfetto, l'ho aggiunto come server ed ora sto testando l'applicazione su Tomcat 7.

Ho riabilitato la stampa dell'errore, e rompe sempre le scatole qui:

Codice:
org.apache.jasper.JasperException: An exception occurred processing JSP page /error.jsp at line 14

11: </head>
12: <body>
13: <% 
14: 	exception.printStackTrace(new PrintWriter(out)); 
15: %>
16: </body>
17: </html>
Sembra come se non interpreti la jsp. Possibile?
Infatti non legge nemmeno l'index.jsp all'interno della dir webapps/ROOT.
Dice che non è presente, invece c'è.

In questo caso sto usando Tomcat scaricato dal sito come file tar.gz, e non quello che ho installato tramite il package manager della mia distribuzione, che invece le jsp le carica senza problemi.. Il server si avvia!

EDIT: cavolo, se lo avvio da riga di comando e non da eclipse, index.jsp funziona. Provo a vedere che succede invece, con la mia applicazione...
Niente: mi da l'errore qui sopra.

Non vorrei che sia questo il problema, ma non ho capito allora come risolverlo.
__________________
^ThE CyBoRg^

Ultima modifica di fbcyborg : 28-11-2011 alle 16:03.
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2011, 18:41   #8
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
Sinceramente mi sto perdendo.

Premesso che a quanto mi sembra di capire, sviluppare un'applicazione web su JBoss è diverso che svilupparla per Tomcat, e che questa cosa mi stia poco simpatica, mi sto imbattendo in un semplice esempio per vedere se riesco a leggere dati da DB usando Tomcat.

Ho letto questa documentazione e usato questo esempio per fare una query al DB.

Quindi ecco cosa ho fatto.
  1. Ho copiato il file mysql-connector-java-5.1.18-bin.jar nella directory webapps/ROOT/WEB-INF/lib/
  2. Ho inserito il seguente codice nel file conf/context.xml all'interno del tag <Context>:
    Codice:
    <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
                   maxActive="100" maxIdle="30" maxWait="10000"
                   username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost:3306/javatest"/>
  3. Ho aggiunto le seguenti righe nel file webapps/ROOT/WEB-INF/web.xml all'interno del tag <web-app>:
    Codice:
    <resource-ref>
          <description>DB Connection</description>
          <res-ref-name>jdbc/TestDB</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
    </resource-ref>
    (Non so se va cambiato il <res-ref-name>)
  4. Infine ho provato la seguente JSP:
    Codice:
    <%@ page import="java.sql.*" %>
    <%
       String connectionURL = "jdbc:mysql://localhost:3306/mydatabase?user=;password=";
       Connection connection = null;
       Statement statement = null;
       ResultSet rs = null;
       %>
    
       
    
        <%
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        connection = DriverManager.getConnection(connectionURL, "", "");
        statement = connection.createStatement();
        rs = statement.executeQuery("SELECT * FROM mytable");
    
        while (rs.next()) {
           out.println(rs.getString("myfield")+"");
        }
    
        rs.close();
    %>
    (Ovviamente riadattandola al mio caso)

Vado all'URL della JSP e ottengo sempre questi errori:
HTTP Status 500:
Codice:
org.apache.jasper.JasperException: javax.servlet.ServletException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
Poi le root causes sono:
  1. javax.servlet.ServletException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
  2. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
  3. java.net.ConnectException: Connection refused

A questo punto non so cosa fare.
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2011, 10:37   #9
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Ciao, la parte 2 e 3 non ti serve se pensi di accedere al DB con il classico DriverManager. La url jndi ti serve quando vuoi referenziare il data source tramite lookup.

Ho fatto un progettino web con tomcat 6 su eclipse, incollato la tua jsp (con le modifice ovvie) e tutto funziona.
Ho inserito il connector mysql dentro WEB-INF/lib

Se ti interessa, eccolo:
http://www.megaupload.com/?d=9ETIUUVA

Lo puoi importare come progetto eclipse.

Ciao
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2011, 12:24   #10
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
Grazie per le conferme sulla parte 2 e 3.

Ho provato ad importare il progetto su Eclipse, e su tomcat non mi funziona!!!

Mi si pianta sempre alla riga in cui si fa la getConnection().
Codice:
org.apache.jasper.JasperException: An exception occurred processing JSP page /test.jsp at line 22
E la urlConnection che uso è stragiusta! Infatti come la lancio su JBoss va che è una meraviglia.

A questo punto credo che ci sia qualche problema di configurazione di Tomcat, o sul mio sistema.

La versione che ho scaricato è questa.

Ora provo su tomcat in una macchina windows e vediamo che cosa succede.
EDIT: su Windows XP con tomcat a 32 bit l'applicazione funziona!
__________________
^ThE CyBoRg^

Ultima modifica di fbcyborg : 29-11-2011 alle 12:47.
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2011, 13:12   #11
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Finalmente
Io, per il mio test ho usato tomcat6 su windows 7 ed eclipse galileo.

Ciauz
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2011, 13:45   #12
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
E mi funziona anche su windows 7 con tomcat 7.

Quindi ora devo capire perché sulla mia Gentoo Linux non funziona.
Sicuro c'è qualche impiccio con la configurazione, anche se la cosa strana è che non funziona sia che io usi l'installazione di tomcat che ho fatto con portage sia che io usi l'installazione di tomcat che ho scaricato direttamente dal sito.

[...]

Azz... Mentre scrivevo ho fatto una prova di nuovo su Gentoo dove non mi funzionava, e ora funziona!
Giuro che non ho cambiato alcuna impostazione in tomcat.
Fra l'altro credevo fosse un problema di JRE_HOME, che è settata su "/usr".

Ho scoperto qual'era il problema. La stringa per la connessione al DB, scritta in questo modo non va bene:
"jdbc:mysql://localhost/mydb"

mentre invece scrivendola così funziona:
"jdbc:mysql://192.168.1.100/mydb"
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2011, 15:57   #13
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
Finalmente ho deployato l'applicazione sul server di produzione e funziona!
C'è solo una cosa che non capisco: quando faccio il login sul database, la prima volta non funziona, la seconda sì!
Troppo strano! Eppure mi sono assicurato che username e password fossero scritti giusti.
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Missione Artemis II diretta verso la Lun...
Toy Story 5 arriva al cinema: è l...
Intel cambia rotta su Linux? Nuove assun...
Samsung aggiorna Bixby con One UI 8.5: p...
L'Etiopia vieta le auto a combustione: a...
Pirateria audiovisiva: la Guardia di Fin...
Ubisoft conferma due nuovi Far Cry in sv...
Chi vincerà il Festival di Sanrem...
G42 e Cerebras portano in India un super...
Offerte aggiornate del weekend Amazon: 7...
4 MacBook Air in offerta e scende a 939€...
Chrome cambia il tuo modo di lavorare: o...
Minimo storico iPhone 17 su Amazon: 909€...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v