PDA

View Full Version : [Java] Web, servlet e codice


D3stroyer
13-10-2010, 18:01
ciao a tutti, è un pezzo che non scrivo piu' qui dentro, ma vorrei chiedervi un'idea. Devo realizzare una sorta di social network alla twitter, ma utilizzando un'implementazione java della rete kademlia. Il problema è che sono nuovo del mondo di java+dynamic web e non capisco una cosa "semplice" per chi è del mestiere:

riesco a far partire una rete kad in locale, creare nodi e condividervi una hashmap senza problemi creando un progetto java: nella main istanzio il controllore che mi serve e lo faccio partire, in due comandi ho la rete aperta.

Ma se devo partire da una pagina web, ho quindi una pagina html/jsp davanti, come faccio a dire "eseguimi questo codice" appena lancio l'applicazione web su tomcat da eclipse? Ho provato a creare una pagina jsp dove cliccando su un bottone mi porta tramite una servlet ad avere una risposta alla "hello world" stampata su un'altra pagina..ma così non riesco a istanziare un bel niente, non capisco come aprire il mio controllore per kad.

Non so se si capisce cosa intendo, ma questo è l'errore che compare a browser se cerco di istanziare il controllore kad tramite una servlet (in RandomNumberServlet ho praticamente copiaincollato il codice che mi faceva funzionare tutto nel semplice progetto java):

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

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

exception

javax.servlet.ServletException: Error instantiating servlet class coreservlets.RandomNumberServlet
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)


root cause

java.lang.NoClassDefFoundError: org/planx/xmlstore/routing/RoutingTestCase
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClassCond(Unknown Source)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2778)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1139)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)


root cause

java.lang.ClassNotFoundException: org.planx.xmlstore.routing.RoutingTestCase
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1666)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClassCond(Unknown Source)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2778)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1139)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1633)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)



se riuscite a darmi un parere grazie ;)

D3stroyer
29-10-2010, 00:10
mi autorispondo per chi magari è novizio con eclipse ed i dynamic projects: dovete aggiungere le librerie alla cartella WEB-INF/lib in eclipse. Se non le fa aggiungere c'è da lavorare nelle opzioni del progetto, tasto destro sulla root, opzioni, ed aggiungerle manualmente "ovunque" può avere senso. Non è una gran spiegazione, ma non riprovo la procedura per rischiare.