|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
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. |
|
|
|
|
|
#2 |
|
Senior Member
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 |
|
|
|
|
|
#3 |
|
Senior Member
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");
}
Codice:
<%@ page errorPage="error.jsp" %> 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>
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) |
|
|
|
|
|
#4 |
|
Senior Member
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 |
|
|
|
|
|
#5 |
|
Senior Member
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. |
|
|
|
|
|
#6 |
|
Senior Member
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 |
|
|
|
|
|
#7 |
|
Senior Member
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> 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. Ultima modifica di fbcyborg : 28-11-2011 alle 16:03. |
|
|
|
|
|
#8 |
|
Senior Member
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.
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)
A questo punto non so cosa fare. |
|
|
|
|
|
#9 |
|
Senior Member
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 |
|
|
|
|
|
#10 |
|
Senior Member
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 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! Ultima modifica di fbcyborg : 29-11-2011 alle 12:47. |
|
|
|
|
|
#11 |
|
Senior Member
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 |
|
|
|
|
|
#12 |
|
Senior Member
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" |
|
|
|
|
|
#13 |
|
Senior Member
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. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:55.




















