Mein erstes JSF Test

Ich hab mir mittels Maven ein JSF Projekt erstellt aus dem archiv myface.apache.org/helloworld.

Installationsmässig läuft auch alles sehr gut aus Eclipse und Tomcat 7.0.57.

Problem macht mir jetzt das erstellen einer Klasse für das Projekt.

Meine POM.XML
[XML]

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


4.0.0
test
jsf1
war
1.0-SNAPSHOT
A custom project using myfaces 1.2
http://www.myorganization.org

<properties>
    <jsf-myfaces.version>1.2.10</jsf-myfaces.version>
    <jsf-ri.version>1.2_15</jsf-ri.version>        
    <maven.jetty.plugin.version>6.1.22</maven.jetty.plugin.version>
    <log4j.version>1.2.13</log4j.version>
</properties>

<build>
    <finalName>jsf1</finalName>
    <plugins>
        <plugin>
            <!--This plugin allows to run the example using mvn jetty:run -->
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>${maven.jetty.plugin.version}</version>
            <configuration>
                <scanIntervalSeconds>10</scanIntervalSeconds>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>myfaces</id>
        <activation>
            <property>
                <name>!jsf</name>
            </property>
        </activation>
        <dependencies>
            <dependency>
                <groupId>org.apache.myfaces.core</groupId>
                <artifactId>myfaces-api</artifactId>
                <version>${jsf-myfaces.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.myfaces.core</groupId>
                <artifactId>myfaces-impl</artifactId>
                <version>${jsf-myfaces.version}</version>
                <scope>runtime</scope>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <!-- Active adding -Djsf=ri when execute maven goals. -->
        <id>jsf-ri</id>
        <activation>
            <property>
                <name>jsf</name>
                <value>ri</value>
            </property>
        </activation>
        <dependencies>
            <dependency>
                <groupId>javax.faces</groupId>
                <artifactId>jsf-api</artifactId>
                <version>${jsf-ri.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>javax.faces</groupId>
                <artifactId>jsf-impl</artifactId>
                <version>${jsf-ri.version}</version>
                <scope>runtime</scope>
            </dependency>
        </dependencies>
        <repositories>
            <repository>
                <id>java.net</id>
                <url>http://download.java.net/maven/1</url>
                <layout>legacy</layout>
            </repository>
        </repositories>
    </profile>
    
    <profile>
        <!-- Debug profile for myfaces and jetty.
            It allows to see debug messages using -PjettyConfig -->
        <id>jettyConfig</id>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                </resource>
                <resource>
                    <directory>src/main/log4j</directory>
                </resource>
            </resources>
            <plugins>
                <plugin>
                    <!--This plugin allows to run the example using mvn jetty:run -->
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>maven-jetty-plugin</artifactId>
                    <version>${maven.jetty.plugin.version}</version>
                    <configuration>
                        <scanIntervalSeconds>10</scanIntervalSeconds>
                        <systemProperties>
                            <systemProperty>
                                <name>org.apache.commons.logging.Log</name>
                                <value>org.apache.commons.logging.impl.Log4JLogger</value>
                            </systemProperty>
                        </systemProperties>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
                <type>jar</type>
            </dependency>
        </dependencies>
    </profile>
</profiles>

<!-- Project dependencies -->
<dependencies>
    
    <dependency>
        <groupId>org.apache.myfaces.tomahawk</groupId>
        <artifactId>tomahawk12</artifactId>
        <version>1.1.9</version>
        <scope>runtime</scope>    
    </dependency>
    
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        <scope>runtime</scope>
    </dependency>        

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>

</dependencies>
[/XML]

will ich jetzt für meine Bean folgendes importieren

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

Mein Projekt kennt wohl anhand Eclipse Autocompleter “javax.faces” aber “javax.faces.bean” kennt er nicht. Fehlt mir in der POM eine Datei, die ich noch einbunden muss für “ManagedBeans”?

Hallo McFly jemand zuhause :wink:

[OT]Anspiel auf Zurück in die Zukunft: weil die Libs die du verwendest schon sehr alt sind.[/OT]

jsf-myfaces-api ist von 02/2011

Ab 2009 hat man mit der Entwicklung von 2.x begonnen. Das geht natürlich auch mit einer Änderung der API einher. Und da kann es sein das da auch ein package hinzukommt.

Es wäre also bestimmt kein Fehler hier 2.2.7 zu verwenden.

Die restlichen API-Versionen sollte man auch anpassen.

Ein Blick hierauf sollte weiterhelfen.

Maven Repository: org.apache.myfaces.core » myfaces-api