Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965

    [JSP] Iniziare

    Su webserver Apache Tomcat non mi "trova" la directory di lavoro webapps/[bold]website[/bold].

    Ecco ciò che ho fatto finora.

    Ho creato la directory 'website' in webapps.
    Ho creato la sottodirectory WEB-INF.
    Ho creato la sottodirectory WEB-INF/classes.

    In quest'ultima directory ho creato un nuovo progetto con eclipse chiamato MyServlet (impostando "package keratox.net", quindi sono state create WEB-INF/classes/keratox e WEB-INF/classes/keratox/net).

    In classes/keratox/net/ ho creato una servlet HelloWorld.java.

    In WEB-INF ho creato il file web.xml in questo modo
    codice:
    <?xml version="1.0"?>
    <web-app">
    	<servlet>
    		<servlet-name>Website</servlet>
    		<servlet-class>keratox.net.Website</servlet>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Website</servlet-name>
    		<url-pattern>/keratox/net/</url-pattern>
    	</servlet-mapping>
    </web-app>
    Sono poi andato a modificare in conf/ il file server.xml , dove ho inserito
    codice:
            
            <context docbase="MyServlet" path="/website">
            </context>
        
    
          </Host>
    
        </Engine>
    
      </Service>
    
    </Server>
    Sono indeciso sull'ultima operazione che vi ho descritto, in quanto non so dove inserire il contesto di preciso (per (in)sicurezza, l'ho messo alla fine dell'ultimo livello gerarchico).

    Molto indeciso sono stato nei <servlet-name> e simili, poichè non so se i nomi che ci vanno identificano singole servlet (quindi file .java), o altre "robe".

    Ditemi voi dove ho sbagliato.


    Ciao

  2. #2
    cosa penso... Il server.xml non lo devi toccare, a meno che tu non debba definire alcuni comportamenti di Tomcat stesso, come ssl e protezione di cartelle attraverso i REALM. Il creare diversi context conviene se sei un amministratore di rete che deve creare diversi spazi per i suoi utenti.

    Poi personalmente proverei se non lo hai ancora fatto a utilizzare lo startup.bat che ti indica se ci sono errori nel web.xml al momento del suo avvio.
    Poi prova così:


    codice:
    <?xml version="1.0"?>
    <web-app">
    <display-name>KERATOX</display-name>
    	<servlet>
    		<servlet-name>tuoServlet</servlet>
    		<servlet-class>keratox.net.HelloWorld</servlet>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>tuoServlet</servlet-name>
    		<url-pattern>/keratox/net</url-pattern>
    	</servlet-mapping>
    </web-app>
    e lo chiami dal browser
    codice:
    http://localhost:8080/Website/keratox/net

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Sempre lo stesso problema

    codice:
    HTTP Status 404 - /website/
    
    type Status report
    
    message /website/
    
    description The requested resource (/website/) is not available.
    Apache Tomcat/5.5.13
    idem se accedo

    /website/keratox/net

    Si vede che non riconosce l'applicazione (motivo per cui puntavo all'inserimento del contesto dell'applicazione (context) nel server.xml)... (presumo)

  4. #4
    non è necessario impostare il context per ogni webapps che aggiungi in tomcat.

    Vedia se ho capito, questa è la struttura della tua webapps:

    codice:
    Website(la cartella all'interno di webapps)
              |_WEB-INF
                   |_classes
                         |_keratox
                               |_net
                                  |_HelloServlet.class
    Se hai settato Tomcat correttamente dovresti raggiungere la servlet anche così:
    codice:
    ]http://localhost:8080/Website/servlets/keratox.net.HelloServlet
    E mi raccomando di controllare la finestra di startup di Tomcat, in questo modo capisci se il problema è veramente nella tua webapp.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Il solito messaggio

    codice:
    HTTP Status 404 - /Website/servlets/keratox.net.HelloServlet
    
    type Status report
    
    message /Website/servlets/keratox.net.HelloServlet
    
    description The requested resource (/Website/servlets/keratox.net.HelloServlet) is not available.
    Apache Tomcat/5.5.13

    E' l'applicazione che non funge.

    Nella lista di applicazioni

    codice:
    Applications
    Path 	Display Name 	Running 	Sessions 	
    ...
    Website                 false           0
    E' l'unica applicazione con "running" false.


    p.s.: sta finestra startup (nella finestra apache tomcat properties) cosa mi deve dire ?! (il webserver funziona)

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Se provo a cliccare su "start" nell'application manager di tomcat mi dice

    codice:
    FAIL - Application at context path /website could not be started
    Quindi io rimando ancora al contesto di server.xml

  7. #7
    Il mio consiglio.

    Cancella quella cartella dalle webapps, rimetti i file di impostazione di Tomcat come all'origine.

    Fai partire Tomcat e controlla che funzioni correttamente senza la tua webapp.

    Crea all'interno della cartella webapps di Tomcat una struttura del genere con nomi che non rischino di confondere Tomcat.
    codice:
    sito(la cartella all'interno di webapps)
              |_WEB-INF (mettiamo il web.xml)
                   |_classes
                         |_sito
                               |_HelloServlet.class
    Web.xml (usa editor decenti, alcuni come Dreamweaver combinano casini)
    codice:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">
    
    <web-app>
        <display-name>Sito</display-name>
    
        <servlet>
            <servlet-name>test</servlet-name>
            <servlet-class>sito.HelloServlet</servlet-class>
        </servlet>
    
    
        <servlet-mapping>
            <servlet-name>test</servlet-name>
            <url-pattern>/prova</url-pattern>
        </servlet-mapping>
    </web-app>
    HelloServlet.class
    codice:
    package sito;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    public class HelloServlet extends HttpServlet {
      public void doGet(HttpServletRequest request,
                        HttpServletResponse response)
          throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String docType =
          "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
          "Transitional//EN\">\n";
        out.println(docType +
                    "<HTML>\n" +
                    "<HEAD><TITLE>Hello</TITLE></HEAD>\n" +
                    "<BODY BGCOLOR=\"#FDF5E6\">\n" +
                    "<H1>Hello</H1>\n" +
                    "</BODY></HTML>");
      }
    }
    Fai questa verifica.
    La finestra di startup di Tomcat ti indica cosa sta facendo. Per esempio se il file web.xml della tua applicazione presenta errori, o errori delle jsp, etc. E' molto utile in fase di sviluppo.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Eh si questa funziona.

    Ho solo dei problemi per visualizzare la servlet HelloWorld.

    Pero' se creo un index.jsp e vado in 127.0.0.1/sito/[index.jsp] funge.

    Grazie... ma... dove sbagliavo io ? :master:
    Nel web.xml ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Ah si ora ho controllato e l'errore era nel file web.xml .

    Non capivo il discorso della finestra di startup, in quanto avviavo tomcat utilizzando il monitor (insomma, non da terminale).

    Grazie di tutto!


    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.