-
Message publié le mardi 21 septembre 2004 - 10h34 par 1tox.
-
Salut,
je viens de déployer avec succès sur un serveur j2ee standard une page JSP.
Lorsque je charge l'adresse de cette page, mon browser me renvoie l'exception suivante
org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
Code:
No Java compiler was found to compile the generated source for the JSP.
This can usually be solved by copying manually $JAVA_HOME/lib/tools.jar from the JDK
to the common/lib directory of the Tomcat server, followed by a Tomcat restart.
If using an alternate Java compiler, please check its installation and access path.
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:87)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:311)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:378)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:421)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:402)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:262)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:263)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:210)
javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:246)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:268)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
Je précise que la page JPS est simplissime (Hello World + J2EE compliant),
que mes variables d'environnement sont $java_home = 'C:\Sun\AppServer\jdk' ou 'c:\j2se1.4_04' (les deux ont été testés)
$j2ee_home = 'C:\Sun\AppServer\'
De +, tools.jar est bien présent dans le répertoire bin
Questions :
-Pourquoi le serveur Tomcat est-il évoqué dans l'exception alors que j'utilise le serveur j2ee standard?
-Quelle peut être à votre avis l'origine de l'erreur ?
En vous remerciant par avance
-
Message publié le mardi 21 septembre 2004 - 11h00 par Wismer.
Besoin de cours en Java ---> http://java.developpez.com/cours/
-
Bonjour
---> Pourquoi le serveur Tomcat est-il évoqué dans l'exception alors que j'utilise le serveur j2ee standard?
Tomcat est un serveur d'applications J2EE dont le code source est à la disposition de tous. Il est possible que Sun se soit servi d'une partie de ce code pour implémenter son propre serveur et que tous les messages d'erreur n'aient pas été modifiés d'où la référence à Tomcat.
---> De +, tools.jar est bien présent dans le répertoire bin
Normalement, c'est dans le répertoire lib
---> Quelle peut être à votre avis l'origine de l'erreur ?
L'erreur que tu as c'est que le serveur ne trouve pas le jdk installé sur ta machine. Je ne pense pas qu'il sache lire la variable $java_home tout seul. Généralement avec un serveur J2EE, il faut configurer une variable et lui donner la valeur de $java_home. Dans le cas du serveur J2EE standard, je ne sais pas où ça se fait (dans un fichier de config, au démarrage du serveur ...)
-
Message publié le lundi 23 février 2009 - 23h02 par chamardal.
-
Bonjour,
je développe une application web avec jsp (j2ee), mon besoin est de faire importer un nombre limité de produit par page avec deux bouton "suivant" et "précédent" pour pouvoir naviguer, mon code est celui-ci:
<%@ page contentType="text/html;charset=windows-1252" import="view.*,java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<table width="200" border="0">
<tr>
<td>
<table border=1>
<tr>
<td><input type="checkbox" checkme="group" tabindex="12"></td>
<td>Type</td>
<td>Sujet</td>
<td>Message</td>
</tr>
<%
Contact cont= new Contact();
Vector v=cont.getListeContact();
int p = 1;
int suivant = p + 1;
int precedent = p - 1;
int nppp=3;
for(int i=1; i<=nppp;i++){
Contact s=(Contact)v.elementAt(i);
String typeCon=s.TypeContact;
String sujetCon=s.sujetContact;
String mailCon=s.mailContact;
int idCon=s.idContact;
%>
<tr>
<td><input name="<%=idCon%>" type="checkbox" checkme="group" tabindex="12">
<td> <%=typeCon%></td>
<td> <%=sujetCon%></td>
<td><a href="" >détails </a></td>
</tr><%}%>
</table>
</td>
</tr>
<tr>
<td align="center"><input onclick="return confirm();" name="submit" type="submit" id="supprimer" value="supprimer" tabindex="3"/></td>
</tr>
</table>
<table>
<tr>
<td width="200px"><%if(precedent >= 1){out.println("<a href=admin_consulter_mail1.jsp?p="+precedent+">precedent</a>");}%></td>
<td width="200px"><%if(suivant <= v.size()){out.println("<a href=admin_consulter_mail1.jsp?p="+suivant+">suivant</a>");}%></td>
</tr>
</table>
</body>
</html>
et la page contact.java est:
package view;
import com.evermind.sql.ResultSetBCELProxy;
import java.sql.*;
import java .io.*;
import java.util.*;
public class Contact
{
/**
*
* @param args
*/
public int idContact;
public String TypeContact;
public String sujetContact;
public String mailContact;
public String messageContact;
public Contact(int idContact,String TypeContact,String sujetContact,String mailContact,String messageContact)
{
this.idContact=idContact;
this.TypeContact=TypeContact;
this.sujetContact=sujetContact;
this.mailContact=mailContact;
this.messageContact=messageContact;
}
public Vector getListeContact(){
Vector tmp=new Vector();
try
{
Connection con=Connexion.getConnexion();
Statement st=con.createStatement();
String requete="select * from contactadmin";
ResultSet rs=st.executeQuery(requete);
while(rs.next()){
String Type=rs.getString("typeContact");
String sujet=rs.getString("sujetContact");
String mail=rs.getString("mailContact");
String message=rs.getString("messageContact");
Contact d=new Contact(Type,sujet,mail,message);
tmp.addElement(d);
}
}
catch (Exception e)
{
e.printStackTrace();
}
return(tmp);
}
}
le résultat que j'obtient apres l'exécusion de ce code c'est l'affichage des tois premiers messages (c'est bon) et lorsque j'appuie sur le bouton "suivant" il affiche les memes trois premiers messages
alors où est ma faute? svp aidez moi à trouver la bonne solution et merci d'avance
-
Message publié le lundi 02 mars 2009 - 12h15 par laruiss.
-
@chamardal : Je t'ai répondu sur ton thread... tu n'as pas sur utiliser les OFFSET ?
@1tox : Tomcat EST l'implémentation officielle des technologies Java Servlet et JSP technologies depuis de nombreuses années (depuis au moins la version 3, si je ne m'abuse).
"Tomcat is the official reference implementation for Java servlet and JSP technologies"
tu dis
De +, tools.jar est bien présent dans le répertoire bin
Or le message te parle des répertoires "lib"...
This can usually be solved by copying manually $JAVA_HOME/lib/tools.jar from the JDK
to the common/lib directory of the Tomcat server, followed by a Tomcat restart.
- Tu utilises Java 1.4 ?(!)
- Dans quel répertoire est installé le JDK ?
il ne faut pas $java_home="uneValeurAuHasard" mais bien JAVA_HOME défini à <répertoire_d'intallation_du_jdk>
@+