Einfach mit JSF Managed Bean nicht geladen werden kann, die von JBoss 7.1 (JBAS018210)

Erhalte ich eine seltsame Fehlermeldung in meinen JBoss-log, wenn ich versuche zu tun, eine sehr einfache JSF-app über Eclipse. So habe ich ein einfaches Szenario, um zu Fragen, ob ich verpasst haben, etwas grundlegendes in meinem JSF-Beispiel. Alternativ habe ich den Verdacht, es könnte eine fehlerhafte Konfiguration oder Fehler in meinem speziellen Werkzeuge oder Umgebung.

Habe ich eine sehr einfache JSF-app. Es ist nur eine JSF-html-Seite (Hallo.jsp), die speichert einen Namen über eine ManagedBean und übergänge zu einem zweiten JSF html-Seite (ok.jsp). Die Bohne hat 1 getter, setter 1, und 1 action-Methode (addContact).

Ich bin nicht mit Anmerkungen, nur eine einfache faces-config.xml Datei mit einer ManagedBean Eintrag und einen navigation-Regel. Die Bohne mit dem Namen "Kontakt" und die Klasse "com.mbeans.ContactBean". Ich glaube, dass das mapping ist alles korrekt.

Ich bin mit JBoss 7.1 über Eclipse Juno SR2. Es ist ein JSF-2.0-app. Ich habe geladen die neuesten JBoss Tools 4.0 für Juno.

Die app besteht nur aus den folgenden Dateien:

web.xml
faces-config.xml
ContactBean.java
hello.jsp
ok.jsp

Den Inhalt der Datei unten. Aber ich ' ll fügen Sie einige Farbe Kommentar auf, wie Sie erstellt wurden über Eclipse (möglicherweise möchten Sie zu überfliegen oder ignorieren):

Gehe ich in Eclipse und erstellen Sie ein neues Projekt. Ich wählen Sie "Dynamic Web Project" mit den folgenden Einstellungen:

Ziel-Laufzeit = JBoss 7.1 Runtime

Konfiguration = Dynamische Konfiguration für JBoss 7.1 Runtime

Generieren web.xml = AKTIVIERT

Ich mit der rechten Maustaste klicken Sie auf WebContent und erstellen Sie eine neue JSP-Datei (Filename = Hallo.jsp). Ich nutze JSP-Template = New JSF-Seite (html).

Füge ich ein paar Zeilen repräsentieren eine einfache form, den Zugriff auf eine ManagedBean mit dem Namen "Kontakt" so dass Hallo.jsp sieht wie folgt aus:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!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=UTF-8">
<title>Add Contact</title>
</head>
<body>
    <f:view>
        <h2>Add Contact</h2>
        <h:form>
            Name:<br>
            <h:inputText value="#{contact.name}" />
            <h:commandButton value="Add Contact"
                action="#{contact.addContact}" type="submit" />
        </h:form>
    </f:view>
</body>
</html>

Ähnlich, ich fügen Sie die folgende JSP-Datei (ok.jsp):

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!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=UTF-8">
<title>OK - Added New Contact</title>
</head>
<body>
    <f:view>
        <p>
            The address for
            <h:outputText value="#{contact.name}" />
            was successfully added.
        </p>
    </f:view>
</body>
</html>

Ich mit der rechten Maustaste auf das Projekt klicken (JSFTest) und fügen Sie eine Klasse mit den folgenden Einstellungen:

Package = com.mbeans

Name = ContactBean

und ich Bearbeiten Sie die Klasse zu erscheinen, etwa so:

package com.mbeans;

public class ContactBean {

    public ContactBean() {super();}

    String name;

    public String getName() {return name;}

    public void setName(String name) {this.name = name;}

    public String addContact() {
        System.out.println("Name: " + getName());
        return "success";
    }  
}

Dann habe ich rechts-Klick auf das WEB-INF-Ordner und ausgewählte New->Other->JBoss Tools Web->JSF->Faces Config mit den folgenden Einstellungen:

Ordner:* = /JSFTest

Name:* = faces-config

Version: 2.0

Registrieren web.xml = AKTIVIERT

In der neuen faces-config.xml erstellte ich mit der rechten Maustaste klicken Sie auf Managed Beans->New->Managed Bean... und legen Sie die folgenden:

Scope = application

Klasse:* = com.mbeans.ContactBean

Name:* = contactBean

Dann habe ich mit der rechten Maustaste geklickt Navigation Rules->New->Rule ... und verlassen Sie das Dialogfeld leer angezeigt und angeklickt Finish.

Ich mit der rechten Maustaste geklickt "[any]"->New->Case... und legen Sie die folgenden:

Vom Ergebnis: = Erfolg

Vom Action: = #{Kontakt.addContact}

ToView ID:* = /ok.jsp

diese, schließlich, ergibt sich die folgende faces-config.xml Datei im WEB-INF-Ordner:

<?xml version="1.0"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 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-facesconfig_2_0.xsd">
 <managed-bean>
  <managed-bean-name>contact</managed-bean-name>
  <managed-bean-class>com.mbeans.ContactBean</managed-bean-class>
  <managed-bean-scope>application</managed-bean-scope>
 </managed-bean>
 <navigation-rule>
  <navigation-case>
   <from-action>#{contact.addContact}</from-action>
   <from-outcome>success</from-outcome>
   <to-view-id>/ok.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
</faces-config>

Dann ich klickte mit der rechten Maustaste die Hallo.jsp und ausgewählten Run As->Run On Server

Wählte ich den JBoss 7.1 Runtime Server (es ist der einzige). Der server erfolgreich gestartet. (Ich weiß, das JBoss-server richtig läuft, andere Sachen außerhalb von Eclipse.)

Bekomme ich einen 500 Fehler und insbesondere sehe ich folgende Meldung im log, die ich denke, ist die Wurzel des Problems:

23:33:08,612 ERROR [org.jboss.web] (MSC service thread 1-3) JBAS018211: Could not load JSF managed bean class: com.mbeans.ContactBean

Ich denke, dass die NullPointerException verursacht werden können durch etwas anderes, was ich falsch gemacht habe in keinem Zusammenhang zu, dass oben genannte Fehlermeldung. Ich bin sehr besorgt über die oben genannten Fehler. Aber wenn jemand darauf hinweisen, meine Fehler und löscht diese NullPointerException, ich würde es zu schätzen wissen, so dass ich es zu beseitigen. Zuvor bekam ich einen anderen 500-Fehlermeldung, ohne die NPE hatte aber immer noch, dass JBAS018211 in der log. In anderen Worten, ich denke, dass die NPE ist ärgerlich, aber irrelevant.

Vollständigen Protokoll ist:

23:33:06,543 INFO  [org.jboss.modules] JBoss Modules version 1.1.1.GA
23:33:06,761 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
23:33:06,824 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
23:33:07,636 INFO  [org.xnio] XNIO Version 3.0.3.GA
23:33:07,638 INFO  [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
23:33:07,647 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
23:33:07,655 INFO  [org.jboss.remoting] JBoss Remoting version 3.2.3.GA
23:33:07,678 INFO  [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
23:33:07,686 INFO  [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem
23:33:07,689 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem.
23:33:07,717 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem
23:33:07,725 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem
23:33:07,749 INFO  [org.jboss.as.security] (MSC service thread 1-10) JBAS013100: Current PicketBox version=4.0.7.Final
23:33:07,749 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
23:33:07,752 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem
23:33:07,789 INFO  [org.jboss.as.connector] (MSC service thread 1-7) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final)
23:33:07,797 INFO  [org.jboss.as.naming] (MSC service thread 1-4) JBAS011802: Starting Naming Service
23:33:07,825 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-12) JBAS015400: Bound mail session [java:jboss/mail/Default]
23:33:07,844 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
23:33:07,971 INFO  [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-7) JBoss Web Services - Stack CXF Server 4.0.2.GA
23:33:07,982 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-5) Starting Coyote HTTP/1.1 on http--127.0.0.1-7070
23:33:08,341 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
23:33:08,352 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-4) JBAS015012: Started FileSystemDeploymentService for directory /usr/local/jboss-as-7.1.1.Final/standalone/deployments
23:33:08,358 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found JSFTest.war in deployment directory. To trigger deployment create a file called JSFTest.war.dodeploy
23:33:08,360 INFO  [org.jboss.as.remoting] (MSC service thread 1-10) JBAS017100: Listening on /127.0.0.1:9999
23:33:08,362 INFO  [org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100: Listening on /127.0.0.1:4447
23:33:08,475 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-12) JBAS015876: Starting deployment of "JSFTest.war"
23:33:08,612 ERROR [org.jboss.web] (MSC service thread 1-3) JBAS018211: Could not load JSF managed bean class: com.mbeans.ContactBean
23:33:08,792 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-10) Initializing Mojarra 2.1.7-jbossorg-1 (20120227-1401) for context '/JSFTest'
23:33:09,663 INFO  [org.hibernate.validator.util.Version] (MSC service thread 1-10) Hibernate Validator 4.2.0.Final
23:33:09,805 INFO  [org.jboss.web] (MSC service thread 1-10) JBAS018210: Registering web context: /JSFTest
23:33:09,818 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015951: Admin console listening on http://127.0.0.1:9990
23:33:09,819 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 3541ms - Started 172 of 249 services (76 services are passive or on-demand)
23:33:09,873 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "JSFTest.war"
23:33:29,683 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/JSFTest].[jsp]] (http--127.0.0.1-7070-1) Servlet.service() for servlet jsp threw exception: java.lang.NullPointerException
    at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1858) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at org.apache.jsp.hello_jsp._jspx_meth_f_005fview_005f0(hello_jsp.java:103)
    at org.apache.jsp.hello_jsp._jspService(hello_jsp.java:78)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jbossweb-7.0.13.Final.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) [jbossweb-7.0.13.Final.jar:]
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) [jbossweb-7.0.13.Final.jar:]
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253) [jbossweb-7.0.13.Final.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
    at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_17]

Das ist es. Das ist das problem.

(nebenbei, Eclipse auch nicht angezeigt, die hover-over-tag-Beschreibungen für JSF. HTML-tags sind OK. Das macht mich Frage mich, wenn es etwas tiefer JBoss Tools Fehlkonfiguration.)

Danke für alle Zeit die Beurteilung von meinem problem.

  • Stellen Sie sicher, dass die kompilierte Klasse wird bereitgestellt propertly in WEB-INF/classes auf Ihrem server.
  • Gehen Sie durch diesen link und erstellen Sie eine neue app. balusc.blogspot.in/2011/01/...
  • Das sieht aus wie ein Super tutorial. Ich habe bookmarked es, danke. Aber ich bin wirklich ahnend mein JBoss oder JBoss Tools hier, also ist es nicht mein Problem direkt.
  • Du hast Recht. Die ContactBean.class ist nicht zum Einsatz in den KRIEG. Aber ich Frage mich, warum.
Schreibe einen Kommentar