Premetto di aver iniziato solo da poco ad utilizzare la J2EE sotto Linux, ovvero su la mia distribuzione Ubuntu 7.10, sulla quale ho installato TomCat 5.5 ed Eclipse Europa.
Partendo dalla guida "Usare Eclipse per applicazioni Web" di: Marco Altese pubblicata su HTML.it 20 Novembre 2006, oggi ho realizzato l'applicazione di prova suggerita la quale:
1. acquisisce dei dati da un form;
2. li salva in un file di testo
3. li visualizza in una nuova pagina
salvando il tutto nel file denominato MySimpleWebApplication.war, il quale è stato regolarme caricato in TomCat.
Quando eseguo l'applicazione http://localhost:8180/MySimpleWebApplication/ , la pagina contenente il form viene eseguita regolarmente, ma al passo successivo mi si presente a video il seguente messaggio di errore:
codice:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.security.AccessControlException: access denied (java.io.FilePermission ./webapps/MySimpleWebApplication/WEB-INF/etc/users.txt write)
java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
java.security.AccessController.checkPermission(AccessController.java:546)
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
java.lang.SecurityManager.checkWrite(SecurityManager.java:962)
java.io.FileOutputStream.<init>(FileOutputStream.java:169)
java.io.FileOutputStream.<init>(FileOutputStream.java:102)
java.io.FileWriter.<init>(FileWriter.java:61)
dati.UserIO.addItem(UserIO.java:11)
controller.SimpleController.doGet(SimpleController.java:40)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5 logs.
Apache Tomcat/5.5
credendo che fosse un problema di permessi in scrittura ho concesso i permessi massimi a tutti i file dell'applicazione:
codice:
root@giuseppe-laptop:/var/lib/tomcat5.5/webapps# ls -lR
.:
totale 12
drwxrwxrwx 4 tomcat55 nogroup 4096 2007-12-07 15:49 MySimpleWebApplication
-rw-r--r-- 1 tomcat55 nogroup 5304 2007-12-07 15:49 MySimpleWebApplication.war
./MySimpleWebApplication:
totale 16
-rwxrwxrwx 1 tomcat55 nogroup 875 2007-12-07 14:35 index.html
drwxrwxrwx 2 tomcat55 nogroup 4096 2007-12-07 15:49 META-INF
-rwxrwxrwx 1 tomcat55 nogroup 1122 2007-12-07 14:37 ShowUser.jsp
drwxrwxrwx 5 tomcat55 nogroup 4096 2007-12-07 15:55 WEB-INF
./MySimpleWebApplication/META-INF:
totale 4
-rwxrwxrwx 1 tomcat55 nogroup 39 2007-12-07 14:45 MANIFEST.MF
./MySimpleWebApplication/WEB-INF:
totale 16
drwxrwxrwx 5 tomcat55 nogroup 4096 2007-12-07 15:49 classes
drwxr-xr-x 2 giuseppe giuseppe 4096 2007-12-07 15:54 etc
drwxrwxrwx 2 tomcat55 nogroup 4096 2007-12-07 15:49 lib
-rwxrwxrwx 1 tomcat55 nogroup 989 2007-12-07 14:16 web.xml
./MySimpleWebApplication/WEB-INF/classes:
totale 12
drwxrwxrwx 2 tomcat55 nogroup 4096 2007-12-07 15:49 business
drwxrwxrwx 2 tomcat55 nogroup 4096 2007-12-07 15:49 controller
drwxrwxrwx 2 tomcat55 nogroup 4096 2007-12-07 15:49 dati
./MySimpleWebApplication/WEB-INF/classes/business:
totale 4
-rwxrwxrwx 1 tomcat55 nogroup 1045 2007-12-07 14:32 User.class
./MySimpleWebApplication/WEB-INF/classes/controller:
totale 4
-rwxrwxrwx 1 tomcat55 nogroup 2068 2007-12-07 14:37 SimpleController.class
./MySimpleWebApplication/WEB-INF/classes/dati:
totale 4
-rwxrwxrwx 1 tomcat55 nogroup 1087 2007-12-07 14:34 UserIO.class
./MySimpleWebApplication/WEB-INF/etc:
totale 0
./MySimpleWebApplication/WEB-INF/lib:
totale 0
ma non ho ottenuto alcun cambiamento!