2010-08-05 3 views
1

J'ai ma première page JSP après quelques années d'utilisation de ces frameworks. Il semble que je ne sache plus programmer JSP. J'utilise Windows, Tomcat 6.0.29, le code est joint. J'ai eu une erreur de suivi. Ensuite, je vérifie hello_jsp compilé, la ligne 22 points à suivre quelques lignes. J'ai el-api.jar, jasper-el.jar dans le classpath. Même je commente la partie java dans la page jsp, elle a la même erreur. Y a-t-il un problème avec mon fichier web.xml?Un problème JSP, première erreur JSP

hello_jsp:

public void _jspInit() { 
    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); 
    _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName()); 
    } 



java.lang.NullPointerException 
     org.apache.jsp.jsp.hello_jsp._jspInit(hello_jsp.java:22) 
     org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52) 
     org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159) 
     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) 
     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
     javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

hello.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<jsp:useBean id="hello" scope="session" class="com.juhani.uml.test.webapp.jsp.HelloTest" /> 

Let's say: <%= hello.getGreetings() %> 


</body> 
</html> 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

<display-name>Simple UML Tool Test</display-name> 

    <servlet> 
<servlet-name>HelloWorld</servlet-name> 
<servlet-class>com.juhani.uml.test.webapp.HelloWorld</servlet-class> 
<load-on-startup>0</load-on-startup> 
</servlet> 

    <servlet-mapping> 
<servlet-name>HelloWorld</servlet-name> 
<url-pattern>/helloworld</url-pattern> 
</servlet-mapping> 

    <session-config> 
<session-timeout>30</session-timeout> 
</session-config> 

<!-- 
    <taglib> 
<taglib-uri>/com/sun/web/taglibs/cache</taglib-uri> 
<taglib-location>/WEB-INF/sun-web-cache.tld</taglib-location> 
</taglib> 
--> 

</web-app> 

Répondre

0

Votre problème est que vous avez copié des bibliothèques spécifiques au serveur dans votre /WEB-INF/lib car il semble avoir résolu les erreurs de compilation. Ceci est cependant la mauvaise solution. Vous rencontrerez toujours des problèmes lors de l'exécution, car les bibliothèques de /WEB-INF/lib ont la priorité dans le chargement des classes et, en raison du mauvais emplacement, des éléments obligatoires sont manquants et tout va se casser.

Vous devez conserver les bibliothèques spécifiques au serveur là où elles appartiennent à l'origine et ne pas les déplacer/les copier. Tout ce que vous devez faire est d'inclure simplement le chemin du système de fichiers de votre disque dans le classpath compiletime. L'IDE moyen (Eclipse, Netbeans, etc.) peut le faire en un seul clic.

+0

Merci. tu as tout à fait raison!!! – user84592

+0

De rien. – BalusC

0

Je fais élaborer. J'exclus servlet-api.jar du fichier war. La raison pour laquelle je pense à cela est que j'ai déplacé le fichier .jsp dans le répertoire racine de tomcat. Alors ça marche.