2010-02-22 7 views
0

J'ai le fichier html à la maison, quand je donne la racine de contexte http://localhost:8080/ccc le fichier html automatiquement chargé dans le navigateur. Dans le fichier html j'ai cinq liens, chacun contient le, lien dans ce format, <a href="servlet_alias_name">Title</a>,comment lier les servlets du fichier html

lorsque je clique sur l'une du lien, il servlet_name dit pas trouvé ... est-il pas possible de naviguer de html à servlet via "a href" tag?

J'utilise Sun Java App Server8.0, j'ai inclus les bibliothèques tout en déployant trop ..

et il montre l'exception suivante,

javax.servlet.ServletException: Error instantiating servlet class pagesvsnodes 
    org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:189) 
    com.sun.enterprise.web.connector.grizzly.ProcessorTask.doProcess(ProcessorTask.java:604) 
    com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:475) 
    com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:371) 
    com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:264) 
    com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:281) 
    com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:83) 
root cause 

java.lang.NoClassDefFoundError: org/jfree/data/general/PieDataset 
    java.lang.Class.getDeclaredConstructors0(Native Method) 
    java.lang.Class.privateGetDeclaredConstructors(Class.java:2328) 
    java.lang.Class.getConstructor0(Class.java:2640) 
    java.lang.Class.newInstance0(Class.java:321) 
    java.lang.Class.newInstance(Class.java:303) 
+0

J'ai également ajouté les bibliothèques requises. – professionalcoder2010

Répondre

1

Si le servlet_alias_name est défini comme url-mapping dans le descripteur de déploiement (/WEB-INF/web.xml) pour votre application Web, vous devriez pouvoir accéder à la servlet de cette manière. Je suppose que vous n'avez pas défini un mappage d'URL et que vous essayez d'utiliser l'élément servlet-name directement, ce qui ne fonctionnera pas.

Par exemple, l'extrait suivant tracerait la classe servlet com.mycompany.SuperServlet au nom logique myServlet, la carte l'URL http://localhost:8080/ccc/servlet-alias-name au nom logique myServlet aussi. Cela ferait en sorte que les requêtes adressées à cette URL invoqueraient cette classe de servlets.

<servlet> 
    <servlet-name>myServlet</servlet-name> 
    <servlet-class>com.mycompany.myservlets.SuperServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>myServlet</servlet-name> 
    <url-pattern>/servlet_alias_name</url-pattern> 
</servlet-mapping> 

Mise à jour - zéro OK tout cela.

Votre problème est que votre webapp ne peut pas trouver la classe org.jfree.data.general.PieDataset lors de l'exécution, même si elle était là lorsque le code a été compilé, vérifiez le javadoc pour NoClassDefFoundError.

Avez-vous inclus les bibliothèques dans la Webapp déployée?

  • comme un pot dans/WEB-INF/lib
  • en tant que classes dans/WEB-INF/classes

Ou sont les libs censés être déployés et disponible dans le monde sur le serveur d'applications?

Avez-vous les mêmes versions de bibliothèques dans votre environnement de construction et dans votre environnement d'exécution? Pour déboguer cette erreur quand je l'ai vu sur Tomcat, je vais au cas simple (déployer jar avec webapp) et essayer de faire marcher ça. Je n'ai jamais trouvé d'outil particulièrement utile pour déboguer cette situation pour être honnête - quelqu'un sait quoi que ce soit qui aide?

+0

J'utilise Sun Java Application Server 8.0 PE. Il crée et met à jour automatiquement ces détails de mappage lors du déploiement. – professionalcoder2010

+0

Désolé, ce n'était pas clair à partir du texte de la question originale. Mise à jour ma réponse basée sur les détails supplémentaires que vous avez fournis, j'espère que c'est plus utile. – Brabster

+0

Merci pour votre idée .. J'ai eu le résultat – professionalcoder2010

Questions connexes