[Risolto][Java] Semplicissimo: leggere file di configurazione con Eclipse

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Archimede Pitagorico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 861
Iscrizione: domenica 22 aprile 2007, 19:51

[Risolto][Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Archimede Pitagorico »

Ragazzi,
un saluto a tutti. Chiedo il vostro aiuto per un semplicissimo quesito. Quanto vi riporto sotto corrisponde ad un metodo per leggere un semplicissimo valore inserito nel file di configurazione web.xml; premetto che sotto NetBeans ha sempre funzionato mentre ora sotto Eclipse non funziona più e da un errore. Credo che possa dipendere da qualche risorsa esterna che non ho importato o non ho correttamente importato. Guardate sotto e capirete. Grazie a tutti per il tempo dedicatomi! PS: ho già importato junit4.

ECCO LA CLASSE UtilityConfig, nel package java.main.utility:


/*
* UtilityConfig.java
*
* Created on 28 gennaio 2008, 16.31
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package java.main.utility;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
*
* @author yohi
*/
public class UtilityConfig {

/**
* Creates a new instance of UtilityConfig
*/
public UtilityConfig() {
}

public String UtilityGetParameter(String ParName){
Context ctx = null;
String ParValue =null;
try {
ctx = new InitialContext();
ParValue =(String) ctx.lookup("java:comp/env/"+ParName);
} catch (NamingException e) {
e.printStackTrace();
return null;
}
return ParValue;

}
}


Ecco il frammento della pagina in cui la richiamo (vi risparmio tutta la pagina per non abusare della vostra disponibilità):






Ed ecco l'errore restituito:



type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception in JSP: /unknow.jsp:29

26: String ParValue =null;
27:
28: ctx = new InitialContext();
29: ParValue =(String)ctx.lookup("java:comp/env/"+"DefaultLanguage");
30:
31: %>
32:


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause

javax.servlet.ServletException: Name DefaultLanguage is not bound in this Context
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
org.apache.jsp.unknow_jsp._jspService(unknow_jsp.java:112)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.naming.NameNotFoundException: Name DefaultLanguage is not bound in this Context
org.apache.naming.NamingContext.lookup(NamingContext.java:770)
org.apache.naming.NamingContext.lookup(NamingContext.java:140)
org.apache.naming.NamingContext.lookup(NamingContext.java:781)
org.apache.naming.NamingContext.lookup(NamingContext.java:140)
org.apache.naming.NamingContext.lookup(NamingContext.java:781)
org.apache.naming.NamingContext.lookup(NamingContext.java:153)
org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
javax.naming.InitialContext.lookup(Unknown Source)
org.apache.jsp.unknow_jsp._jspService(unknow_jsp.java:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.
Ultima modifica di Archimede Pitagorico il giovedì 6 marzo 2008, 18:39, modificato 1 volta in totale.
Archimede Pitagorico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 861
Iscrizione: domenica 22 aprile 2007, 19:51

Re: [Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Archimede Pitagorico »

Ulteriore indicazione!

Mi sono accorto che nella parte superiore della classe non ho scritto la linea che vi copio sotto. Se cerco di inserirla, il completamento automatico non mi permette di farlo! Che dipenda da qualche risorsa necessaria per accettare il comando seguente?

import java.util.Hashtable;
Avatar utente
Massimo S.
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1931
Iscrizione: giovedì 28 settembre 2006, 14:34

Re: [Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Massimo S. »

Ma a parte la differenza di IDE (Netbeans vs Eclipse), il servlet container che c'è sotto è sempre lo stesso?

E' sempre tomcat? Stessa versione?
Archimede Pitagorico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 861
Iscrizione: domenica 22 aprile 2007, 19:51

Re: [Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Archimede Pitagorico »

Grazie per il tuo prezioso aiuto.

Il server è identico, Tomcat 5.5
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: [Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da prampa »

Ho copiato il tuo codice senza modificare nulla in una mia applicazione web e ha funzionato ( (ot) lo so, questa è la sfiga che capita sempre......a volte sono diventato idiota con linux, a me non funzionava nulla e la stessa cosa invece su altri pc andava benissimo!!!!!) >:(.
L'unica cosa di diverso è che ho creato a mano il codice nel web.xml per poter fare il lookup.
Quindi posta il tuo web.xml, o almeno la sezione relativa al tuo : di seguito ti riporto il mio, anche se dubito che dipenda da questo perche' ti tornerebbe null....
  mia_descrizione
  defaultLanguage
  mia_prova
  java.lang.String
una curiosità: da eclipse posizionandoti con il cursore sopra javax.naming..... premendo f3 cosa ti viene visualizzato? esiste nella lista rt.jar?

N.B.: come da titolo, non è che il web.xml lo leggi con eclipse o netbeans.....
ciao
Ultima modifica di prampa il giovedì 6 marzo 2008, 0:59, modificato 1 volta in totale.
Archimede Pitagorico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 861
Iscrizione: domenica 22 aprile 2007, 19:51

Re: [Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Archimede Pitagorico »

Grazie! Ti copio sotto quello che mi hai chiesto, la variabile richiamata e che genera errore è proprio l'ultima. Ho copiato un pezzo del vecchio web.xml nel nuovo, lasciando solo le prime righe del nuovo ossia l'intestazione. Sono sempre più convinto che l'errore dipenda dal modo in cui ho copiato i dati nel nuovo web.xml! Se seleziono f3 non succede nulla eppure l'autocompletamento mi ha correttamente completato quelle istruzioni! Attendo lumi e ti ringrazio





Base




ServletUserCheck
ServletUserCheck

java.main.servlet.ServletUserCheck





ServletAccount
ServletAccount

java.main.servlet.ServletAccount





ServletReminder
ServletReminder

java.main.servlet.ServletReminder


ServletUserCheck
/ServletUserCheck


ServletAccount
/ServletAccount


ServletReminder
/ServletReminder


index.html
index.htm
index.jsp
default.html
default.htm
default.jsp



   
       
   
        titolo applicazione - italiano
        it.appTitle
        java.lang.String
        Quattrozampe
   
Avatar utente
Massimo S.
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1931
Iscrizione: giovedì 28 settembre 2006, 14:34

Re: [Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Massimo S. »

Archimede Pitagorico ha scritto: Grazie per il tuo prezioso aiuto.

Il server è identico, Tomcat 5.5
Lo chiedevo perché application server diversi possono avere una struttura diversa dell'alberatura JNDI, ma se il server è identico il problema sarà un altro.

Ciao
Archimede Pitagorico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 861
Iscrizione: domenica 22 aprile 2007, 19:51

Re: [Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Archimede Pitagorico »

Non ho neppure pranzato, e tutto per scoprire che:

I PACKAGE DI ECLIPSE NON FUNZIONANO SE NEL LORO NOME SI METTE UN PUNTO; QUELLI DI NETBEANS INVECE SI.

Se può servire a qualcuno, tenetelo a mente. Non ho parole. Mi sembra una piccola conquista; ora TUTTA la mia applicazione funziona anche sotto Eclipse. Signori, tanti saluti a NetBeans. Che sarà anche buono, ma che nessuno dei miei colleghi usa. Ora sarà molto più facile capirsi con gli altri (e con Prampa!).

Grazie a tutti
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: [Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da prampa »

Archimede Pitagorico ha scritto: Non ho neppure pranzato, e tutto per scoprire che:

I PACKAGE DI ECLIPSE NON FUNZIONANO SE NEL LORO NOME SI METTE UN PUNTO; QUELLI DI NETBEANS INVECE SI.

Se può servire a qualcuno, tenetelo a mente. Non ho parole. Mi sembra una piccola conquista; ora TUTTA la mia applicazione funziona anche sotto Eclipse. Signori, tanti saluti a NetBeans. Che sarà anche buono, ma che nessuno dei miei colleghi usa. Ora sarà molto più facile capirsi con gli altri (e con Prampa!).

Grazie a tutti
I PACKAGE DI ECLIPSE NON FUNZIONANO SE NEL LORO NOME SI METTE UN PUNTO; QUELLI DI NETBEANS INVECE SI.
Secondo me no (mi riferisco al punto nel nome). Infatti per prova ho copiato la tua definizione di env-entry sotto il mio web.xml e funziona anche con il punto, cioè se richiamo

Codice: Seleziona tutto

out.println( myParGet.UtilityGetParameter("it.appTitle"));
da una jsp questa funziona perfettamente, restituendomi "Quattrozampe" (ho capito bene quello che volevi dire?).
Non c'entrano i package che siano di eclipse o netbeans.....se la tua applicazione la sviluppi tutta col "vi" funziona ugualmente! Non esiste una applicazione che funziona perche' la sviluppi con eclipse (a meno che non sia un suo plugin) o funziona diversamente se invece usi netbeans: la tua applicazione funziona se deploiata in un application server o un servlet container. Eclipse è solo un editor e basta: ti aiuta nella stesura del codice, ti da altri aiuti ma nulla di piu'. L'applicazione deve essere realizzata per funzionare in base a tante regole, tutte pero' indipendenti dall'editor: quando effettui il deploy di una applicazione web, mica ti porti dietro le librerie di eclipse o netbeans!
Io ho tomcat 6.0 qualcosa: prova a scaricarti la versione dal sito, la unzippi (non la installi da repository) e prova anche con quella.
Al limite prova ad allegare solo il tuo ".war" se è possibile. Oppure crea una semplicissima applicazione con solo web.xml, classe java di utility e jsp di visualizzazione. La posti e la proviamo. Pero' è anche indicativo il fatto che senza il punto nel nome l'applicazione va.....ma come effettui il deploy?
ciao
Archimede Pitagorico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 861
Iscrizione: domenica 22 aprile 2007, 19:51

Re: [Risolto][Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Archimede Pitagorico »

Ragazzi vi aggiorno, innanzitutto però tengo a ringraziare Prampa per la sua grande cortesia. Ho creato un'applicazione banalissima, un solo package, una classe ed una pagina index.jsp che legge un dato da un file xml; ciò per fare una prova. Bene, ho usato un programma così semplice per escludere ogni altra implicazione. Solo un package, una classe, una pagina, ed un file xml; niente altro. Chiamando il package a tutto funzionava, chiamandolo a.a invece no. Creo i files war cliccando col tasto destro sul progetto e poi esportandolo. Grazie a tutti, siete davvero disponibilissimi.
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: [Risolto][Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da prampa »

Archimede Pitagorico ha scritto: Ragazzi vi aggiorno, innanzitutto però tengo a ringraziare Prampa per la sua grande cortesia. Ho creato un'applicazione banalissima, un solo package, una classe ed una pagina index.jsp che legge un dato da un file xml; ciò per fare una prova. Bene, ho usato un programma così semplice per escludere ogni altra implicazione. Solo un package, una classe, una pagina, ed un file xml; niente altro. Chiamando il package a tutto funzionava, chiamandolo a.a invece no. Creo i files war cliccando col tasto destro sul progetto e poi esportandolo. Grazie a tutti, siete davvero disponibilissimi.
allora avevo capito male io. Il problema non era dato dal nome interno della variabile nel web.xml "it.qualcosa". Giusto? Se dipenda dall'alberatura? Non ci credo, ma zippa e allega l'ultimo progetto funzionante (tanto è piccolissimo) che hai creato. E descrivi anche il modo in cui non funziona, cosi' stasera lo provo.
ciao
Archimede Pitagorico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 861
Iscrizione: domenica 22 aprile 2007, 19:51

Re: [Risolto][Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Archimede Pitagorico »

Grazie Prampa, provvidenzialissimo come sempre.

Finalmente usiamo lo stesso IDE!! Ti allego subito il mini progetto, noterai che aggiungendo anche solo un punto ed una lettera sul package (chiamalo ad esempio a.a) il programma non funziona.
Allegati
test0.zip
(2.74 KiB) Scaricato 46 volte
prampa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: lunedì 26 febbraio 2007, 14:04

Re: [Risolto][Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da prampa »

OK, capito. Si tratta solo di come si crea il .war e non dal nome o dall'alberatura dei packages (che devono essere creati).
Le classi compilate devono stare sotto WEB-INF/classes/nomePackage.NomeClasse.class.
Quando esporti il progetto da eclipse devi togliere il segno di spunta dal file .classpath e selezionare "create only selected directories": in questo modo se poi apri il file .war con un qualsiasi programma di archiviazione,  avrai solo la cartella WEB-INF (e le relative sottocartelle) e la index.jsp (almeno nel tuo esempio). In pratica, nel file war non devi avere una cartella test0 e sotto WEB-INF e index.jsp, ma direttamente WEB-INF e index.jsp.
Undeploy dal manager di tomcat e successivo deploy indicando il .war, f5 sulla pagina index.jsp e vedrai che funziona.
ciao
Archimede Pitagorico
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 861
Iscrizione: domenica 22 aprile 2007, 19:51

Re: [Risolto][Java] Semplicissimo: leggere file di configurazione con Eclipse

Messaggio da Archimede Pitagorico »

Prampa,
come al solito non posso che ringraziarti per tutto il tempo che spendi dietro alle mie richieste. Sei stato chiarissimo. Sono contento di essere passato ad Eclipse; è vero che alla fine i due IDE producono codice simile (come qualcuno mi ha giustamente spiegato) però usare lo stesso IDE renderà più semplice capirci. Grazie ancora!
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Google [Bot] e 3 ospiti