Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    39

    [Java Servlet]problema package

    salve ragazzi ho un problema che non riesco a gestire.
    ho un progetto per l'universita per implementare alcune funzioni del gioco del risiko online.
    per tenere tutto sotto controllo siccome so che posso utilizzare tomcat anche come webserver in sostituzione di apache
    ho deciso di tenere tutto sotto tomcat.
    allora adesso sto gestendo il login e essendo in ambiente linux ho la mia unica pagina (per ora una index dove c'e' il form di login) nella cartella:
    /usr/local/tomcat/webapps/ROOT/Risiko2011
    adesso in questa pagina il submit del form richiama una servlet che dovra' gestire la connessione con il database e la validazione dell'utente.
    quest'ultima e' in /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/Risiko2011
    ed ho inserito nel mio web.xml le seguenti linee di codice:
    codice:
      <servlet>
            <servlet-name>logServlet</servlet-name>
            <servlet-class>Risiko2011.logServlet</servlet-class>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>logServlet</servlet-name>
            <url-pattern>/Risiko2011/logServlet</url-pattern>
        </servlet-mapping>
    questo e' invece e' il codice della mia pagina html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title> Risiko2011!</title>
    <link rel="stylesheet" type="text/css" href="index.css">
    <script type="text/javascript">
    function svuota(campo,usual){
    var currentElement = document.getElementById(campo);
    var current = currentElement.value;
    if(current==usual)
    document.getElementById(campo).value="";
    }
    function verifyRequired(field){
    if(field.Username.value == "" || field.Password.value == "" || field.Username.value=="Username" || field.Password.value=="password")
    document.getElementById("errore").innerHTML="Bisog na inserire i campi obbligatori per effettuare l'autenticazione";
    else{
    field.submit();
    }
    }
    </script>
    </head>
    <body>
    <div id="container">
    <div id="header">
    <div id="logo">
    [img]img/risiko.gif[/img]
    </div>
    </div>
    <hr>
    <div id="content">
    <form id="login" action="logServlet" method="POST">
    <div>
    <input type="text" class="inputText" value="Username" id="Username" name="Username" onFocus="svuota(&#039;Username&#039,&#039;Username &#039)"/>
    <input type="password" value="password" class="inputText" id="Password" name="Password" onFocus="svuota(&#039;Password&#039,&#039;password &#039)"/>
    <input type="button" value="Accedi" class="buttonStyle" onClick="verifyRequired(this.form)">

    </div>
    </form>
    <div id="errore"></div>
    </div>
    tutto mi sa si gioca su come si richiama la servlet nell'action ho provato a inserire sia:
    /logServlet
    logServlet
    /Risiko2011/logServlet
    Risiko2011/logServlet
    tutti con risultati negativi! cosa sbaglio? scusatemi ma e' l'inizio con queste cose

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java Servlet]problema package

    Originariamente inviato da Ramboz89
    tutto mi sa si gioca su come si richiama la servlet nell'action ho provato a inserire sia:
    /logServlet
    logServlet
    /Risiko2011/logServlet
    Risiko2011/logServlet
    tutti con risultati negativi! cosa sbaglio? scusatemi ma e' l'inizio con queste cose
    Il contesto di "root" viene di base mappato su "/" cioè su http://xyzorta/

    In pratica se richiedi es.
    http://localhost:8080/xyz

    questo xyz è quello che tu dovresti avere in
    /usr/local/tomcat/webapps/ROOT/xyz

    pertanto a rigor di logica sarebbe corretto come action /Risiko2011/logServlet
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    39
    come ti dicevo prima ci ho provato adesso ti riporto l'errore
    codice:
    type Exception report
    
    message
    
    description The server encountered an internal error () that prevented it from fulfilling this request.
    
    exception
    
    javax.servlet.ServletException: Error allocating a servlet instance
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    	java.lang.Thread.run(Thread.java:679)
    
    root cause
    
    java.lang.NoClassDefFoundError: Risiko2011/logServlet (wrong name: logServlet)
    	java.lang.ClassLoader.defineClass1(Native Method)
    	java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
    	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    	java.lang.Thread.run(Thread.java:679)
    grazie dell'aiuto

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Ramboz89
    java.lang.NoClassDefFoundError: Risiko2011/logServlet (wrong name: logServlet)
    Dal momento che logServlet.class l'hai messo sotto classes/Risiko2011, vuol dire che la classe logServlet deve essere in un package di nome "Risiko2011".
    E in sostanza, vuol dire che nel tuo sorgente logServlet.java devi avere la dichiarazione di package:

    codice:
    package Risiko2011;
    
    .....
    E ovunque tu abbia messo il logServlet.java sarebbe bene che anch'esso sia sotto una cartella Risiko2011.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    39
    grazie mille andbin c'ero vicinissimo ma quella cosa mi mancava proprio per qualsiasi problema allora riscrivo qui grazie mille!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.