org.apache.jasper.JasperException: /index.jsp(1,1) The value for the useBean class attribute com.b5 is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1272)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Generator.generate(Generator.java:3426)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:216)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Can anyone explain the cause and solution of this problem?
6 Réponses :
package com;
public class b5 {
public b5(String argument) {
// Non-default constructor.
}
public b5() {
// You need to explicitly add a default constructor.
}
}
Salut! Je suis avec le même problème, mais mon classes code> ne sont pas situés dans le dossier Web-Inf code>. Cependant, je ne veux pas changer de liste de dossiers de classe. Savez-vous un moyen de précompiler les fichiers JSP ayant un emplacement différent pour les classes dir?
Je viens d'avoir ce problème et pour une raison quelconque aujourd'hui des Netbeans n'a tout simplement pas placé le fichier de classe dans mon / Build / Web / Web-Inf / Classes /. Je n'avais apporté aucune modification et ce code est utilisé fréquemment. J'ai fait de petits changements aléatoires, recompilés, puis je suis montré.
@Ballusc Ajout de constructeur par défaut travaillé. Mais pouvez-vous me dire pourquoi ai-je besoin de l'avoir? Ne pouvait pas programmer le travail bien si nous ne l'avons pas? Dans mon cas, je n'utilise jamais constructeur de no-args, mais on dirait que je doit code> l'avoir. Pourquoi est-ce tellement?
Je viens d'avoir le même problème. En plus de ce qui précède, assurez-vous de vous rappeler de définir votre classe elle-même sur "publique" p>
J'ai eu le même problème et j'ai mis en évidence ci-dessus, j'ai oublié d'ajouter le constructeur par défaut, car j'avais ajouté une nouvelle. p>
Java de base, le compilateur ajoute un constructeur par défaut sans argore dans chaque classe que vous créez, à l'exception du moment où vous ajoutez explicitement un constructeur. p>
au lieu de
utiliser
JSP: UseBean> code>
Redémarrez également Tomcat Server après des modifications p>
Essayez Type B> au lieu de Classe B> P>
la différence selon la documentation: p>
Classe = "package.class" type = "package.class" Instancitait un haricot de la classe nommée en classe et attribue le bean le type de données que vous spécifiez dans le type. La valeur du type peut être identique à la classe, une superclasse de classe ou une interface mise en œuvre par classe. La classe que vous spécifiez en classe ne doit pas être abstraite et doit avoir un constructeur public, sans argument. Les noms d'emballage et de classe que vous utilisez avec la classe et le type sont sensibles à la casse. beanname = "{package.class |}" type = "package.class" Instancite un haricot d'une classe, un modèle sérialisé ou une expression qui évalue à une classe ou à une gabarit sérialisée. Lorsque vous utilisez BeanName, le haricot est instancié par la méthode Java.beans.Beans.Insticate. La méthode des haricots.Insticate vérifie si l'emballage et la classe que vous spécifiez représentent une classe ou un modèle sérialisé. S'ils représentent un modèle sérialisé, des haricots.Instanciate lit la forme sérialisée (qui a un nom comme package.class.ser) à l'aide d'un chargeur de classe. La valeur du type peut être identique à BeanName, une superclasse de beanName ou une interface implémentée par BeanName. Les noms d'emballage et de classe que vous utilisez avec le nom de base et le type sont sensibles à la casse. BlockQuote>
Votre espace de travail a la classe qui nécessitait en utilbean, donc tout en travaillant, il ne lancera aucun message d'erreur. Mais lorsque vous avez déployé l'application, il est déployé selon le fichier déployé.Properties.Il pourrait être possible que votre classe que vous avez utilisée en utilbean ne soit pas déployée. Vérifiez votre fichier de déploiement.Properties.hope Ça fonctionnera !! p>
Pourriez-vous publier le code qui cause cette erreur?