SlideShare ist ein Scribd-Unternehmen logo
1 von 29
1



 The author has made every effort in the preparation of this book to ensure the accuracy of the information.
However, information in this book is sold without warranty either expressed or implied. The author will not be
    held liable for any damages caused or alleged to be caused either directly or indirectly by this book.




JSF, Facelets, Spring, Hibernate, Maven2 &
                  Eclipse


                                   Putting it All together



                                                    by




                                        K. Arulkumaran


                                                     &

                                             A. Sivayini




               Website: http://www.lulu.com/java-success


             Feedback email: java-interview@hotmail.com
2

                                                 Table Of Contents


Notations ..................................................................................................................... 3
Tutorial 9 – JSF, Facelets, Spring, Hibernate & Maven 2 ............................... 4
Tutorial 10 – Maven 2 ............................................................................................. 18
3
                                     Notations

Command prompt:




Eclipse:




File Explorer or Windows Explorer:




Internet Explorer:
4
Tutorial 9 – JSF, Facelets, Spring, Hibernate & Maven 2


This tutorial will put together tutorials 1-8. It will also incorporate dependencies
between the simpleWeb (c:tutorialsjsimpleWeb) and simple
(c:tutorialsjsimple) projects as it would be in a real application.
Step 1:

Firstly create a dependency between simpleWeb and simple. In fact simpleWeb depends on simple
for business service functions and data access and storage. So we need to define this in our pom.xml
file under simpleWeb (c:tutorialsjsimpleWeb).


    <dependency>
        <groupId>com.mytutorial</groupId>
        <artifactId>simple</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>jar</type>
    </dependency>


c:tutorialssimpleWebpom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-
v4_0_0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <groupId>com.mytutorial</groupId>
         <artifactId>simpleWeb</artifactId>
         <packaging>war</packaging>
         <version>1.0-SNAPSHOT</version>
         <name>simpleWeb Maven Webapp</name>
         <url>http://maven.apache.org</url>
         <dependencies>
                   <dependency>
                           <groupId>com.mytutorial</groupId>
                           <artifactId>simple</artifactId>
                           <version>1.0-SNAPSHOT</version>
                           <type>jar</type>
                   </dependency>

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

                 <dependency>
                         <groupId>commons-digester</groupId>
                         <artifactId>commons-digester</artifactId>
                         <version>1.8</version>
                 </dependency>

                 <dependency>
                         <groupId>commons-collections</groupId>
                         <artifactId>commons-collections</artifactId>
                         <version>3.2</version>
                 </dependency>
5
        <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring</artifactId>
                <version>2.0.6</version>
        </dependency>

        <!-- JSF/JSTL/Facelets -->
        <dependency>
                 <groupId>javax.faces</groupId>
                 <artifactId>jsf-api</artifactId>
                 <version>1.2</version>
        </dependency>
        <dependency>
                 <groupId>javax.faces</groupId>
                 <artifactId>jsf-impl</artifactId>
                 <version>1.2_04</version>
        </dependency>
        <dependency>
                 <groupId>com.sun.facelets</groupId>
                 <artifactId>jsf-facelets</artifactId>
                 <version>1.1.11</version>
        </dependency>
        <dependency>
                 <groupId>javax.servlet</groupId>
                 <artifactId>jstl</artifactId>
                 <version>1.1.2</version>
        </dependency>
        <dependency>
                 <groupId>javax.el</groupId>
                 <artifactId>el-api</artifactId>
                 <version>1.0</version>
                 <scope>provided</scope>
        </dependency>
        <dependency>
                 <groupId>com.sun.el</groupId>
                 <artifactId>el-ri</artifactId>
                 <version>1.0</version>
        </dependency>

</dependencies>
<build>
        <finalName>simpleWeb</finalName>
        <pluginManagement>
                <plugins>
                         <plugin>
                                 <groupId>org.apache.maven.plugins</groupId>
                                 <artifactId>maven-compiler-plugin</artifactId>
                                 <version>2.0.2</version>
                                 <configuration>
                                           <source>1.5</source>
                                           <target>1.5</target>
                                 </configuration>
                         </plugin>
                         <plugin>
                                 <groupId>org.apache.maven.plugins</groupId>
                                 <artifactId>maven-eclipse-plugin</artifactId>
                                 <version>2.4</version>
                                 <configuration>
                                           <downloadSources>false</downloadSources>
                                           <wtpversion>1.5</wtpversion>
                                 </configuration>
                         </plugin>
                </plugins>
6
                  </pluginManagement>
         </build>
         <repositories>
                  <repository>
                           <id>maven-repository.dev.java.net</id>
                           <name>Java Dev Net Repository</name>
                           <url>http://download.java.net/maven/2/</url>
                           <releases>
                                    <enabled>true</enabled>
                                    <updatePolicy>never</updatePolicy>
                           </releases>
                           <snapshots>
                                    <enabled>false</enabled>
                           </snapshots>
                  </repository>
         </repositories>
</project>

Step 2: Exit out of eclipse and run the following maven command in a command
prompt:

C:tutorialssimpleWeb>mvn eclipse:clean eclipse:eclipse




STEP: WorkAround

The JSF 1.2 requires eclipse web facet 2.5. You need to open the file
“org.eclipse.wst.common.project.facet.core.xml” under C:tutorialssimpleWeb.settings as shown
below from version=2.4 to version=2.5. Every time you use the eclipse:clean command, you will have
to manually fix this up as shown below.




Step 3: Get back into eclipse and refresh the simpleWeb project by highlighting it and pressing “F5”.
Now right click and select “Properties”.
7




Since simpleWeb depends on simple maven2 has transitively brought all it dependencies into the
simpleWeb’s build path. In order to build a war file inside eclipse (pom.xml file is useful for building
war file and deploying externally) you need to define the J2EE module dependencies inside eclipse by
right clicking on simpleWeb and then selecting “Properties” and then “J2EE module depndencies”.

We need most jar files except for the el-api-1.0.jar & servlet-api-2.3.jar. Make sure that these 2 jars
are not ticked because they are available under Tomcat’s lib directory. All the ticked jar files end up in
“/WEB-INF/lib” directory when packaged inside Eclipse.




When you package it outside eclipse using mvn command “mvn clean package” pom.xml file will be
used for packaging these dependency jar files under “/WEB-INF/lib” inside the war file
8
Step 4: Let’s make the following changes for this tutorial


App.java in simple project
package com.mytutorial;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {

    public static void main(String[] args) {

          ApplicationContext ctx = new ClassPathXmlApplicationContext(        "applicationContext-
                         mytutorial.xml");

          List<Course> courses = new ArrayList<Course>(10);

          Course c1 = new Course();
          c1.setName("John");
          c1.setCourse("Java");

          courses.add(c1);

          Course c2 = new Course();
          c2.setName("Peter");
          c2.setCourse("Hibernate");

          courses.add(c2);

          //CourseService service = new CourseServiceImpl();
          CourseService service = (CourseService) ctx.getBean("courseService");

          service.processCourse(courses);

          List<Course> listCourses = service.getCourses(); //added

          System.out.println("Retrieved courses and names are " + listCourses); //added

     }
}


CourseService.java in simple project
package com.mytutorial;

import java.util.List;

public interface CourseService {

          public abstract void processCourse(List<Course> courses);

          public abstract List<Course> getCourses(); //added
}
9
CourseServiceImpl.java in simple project
package com.mytutorial;

import java.util.List;

public class CourseServiceImpl implements CourseService {

        private CourseDao courseDao;

        public CourseDao getCourseDao() {
              return courseDao;
        }

        public void setCourseDao(CourseDao courseDao) {
              this.courseDao = courseDao;
        }

        //Modified
        public void processCourse(List<Course> courses) {
              // CourseDao dao = new CourseDaoImpl();
              courseDao.create(courses);
        }

        //Added
        public List<Course> getCourses() {
              List<Course> list = getCourseDao().findAll();
              return list;
        }
}


CourseControllerBean.java in simpleWeb project
package com.mytutorial;

import java.util.List;

public class CourseControllerBean {

        private CourseService courseService; // injected via spring

        public List<Course> getCourses(){
              return getCourseService().getCourses();
        }


        public CourseService getCourseService() {
              return courseService;
        }

        public void setCourseService(CourseService courseService) {
              this.courseService = courseService;
        }
}

greeting.jspx in simpleWeb project
<?xml version="1.0" encoding="ISO-8859-1" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
         xmlns:f="http://java.sun.com/jsf/core"
         xmlns:h="http://java.sun.com/jsf/html"
         xmlns:ui="http://java.sun.com/jsf/facelets" version="2.0">
10

        <ui:composition>
                <html>
                <head>

                 <title>greeting page</title>
                 </head>
                 <body>
                 <f:loadBundle basename="com.mytutorial.messages" var="msg" />
                 <h3><h:outputText value="#{msg.greeting_text}" />, <h:outputText
                          value="#{personBean.personName}" /> <h:outputText
                          value="#{msg.sign}" /></h3>


                 <h:dataTable id="courses" value="#{courseBean.courses}" var="course"
                             border="1">
                        <h:column>
                                 <f:facet name="header">
                                          <h:outputText value="Name" />
                                 </f:facet>
                                 <h:outputText value="#{course.name}" />
                        </h:column>

                         <h:column>
                                 <f:facet name="header">
                                          <h:outputText value="Course" />
                                 </f:facet>
                                 <h:outputText value="#{course.course}" />
                         </h:column>
                 </h:dataTable>


                 </body>
                 </html>
         </ui:composition>
</jsp:root>
11




applicationContext.xml in simpleWeb project
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">

        <bean id="person" class="com.mytutorial.PersonBean" />

        <bean id="personBean" class="com.mytutorial.PersonControllerBean" scope="session">
                <property name="person" ref="person" />
        </bean>

        <bean id="courseBean" class="com.mytutorial.CourseControllerBean" scope="session">
                <property name="courseService" ref="courseService" />
        </bean>

</beans>
12




finally the web.xml file.

web.xml in simpleWeb project: find both spring applicationContext files.
            <context-param>
                <param-name>contextConfigLocation</param-name>

               <param-value>
                     <![CDATA[
                     /WEB-INF/applicationContext.xml
                     classpath:applicationContext-mytutorial.xml
                     ]]>
               </param-value>
          </context-param>

The web.xml file should look like:

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
          <context-param>
                    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
                    <param-value>server</param-value>
          </context-param>
          <context-param>
                    <param-name>javax.faces.CONFIG_FILES</param-name>
                    <param-value>/WEB-INF/faces-config.xml</param-value>
          </context-param>
          <context-param>
                    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
                    <param-value>.jspx</param-value>
          </context-param>

         <context-param>
                  <param-name>contextConfigLocation</param-name>

                  <param-value>
                          <![CDATA[
                          /WEB-INF/applicationContext.xml
                          classpath:applicationContext-mytutorial.xml
                          ]]>
                  </param-value>
         </context-param>
13
         <!-- Special Debug Output for Development -->
         <context-param>
                   <param-name>facelets.DEVELOPMENT</param-name>
                   <param-value>true</param-value>
         </context-param>
         <!-- Optional JSF-RI Parameters to Help Debug -->
         <context-param>
                   <param-name>com.sun.faces.validateXml</param-name>
                   <param-value>true</param-value>
         </context-param>
         <context-param>
                   <param-name>com.sun.faces.verifyObjects</param-name>
                   <param-value>true</param-value>
         </context-param>

         <listener>
                   <listener-class>
                              org.springframework.web.context.ContextLoaderListener
                   </listener-class>
         </listener>

         <listener>
                   <listener-class>
                              org.springframework.web.context.request.RequestContextListener
                   </listener-class>
         </listener>

         <!-- Faces Servlet -->
         <servlet>
                   <servlet-name>Faces Servlet</servlet-name>
                   <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
                   <load-on-startup>1</load-on-startup>
         </servlet>

         <!-- Faces Servlet Mapping -->
         <servlet-mapping>
                   <servlet-name>Faces Servlet</servlet-name>
                   <url-pattern>*.jsf</url-pattern>
         </servlet-mapping>

</web-app>


Step 5: Now install the “simple” project into maven repository with the new changes by:

C:tutorialssimple>mvn clean install

This should install the “simple-1.0-SNAPSHOT.jar” under
“C:java.m2repositorycommytutorialsimple1.0-SNAPSHOT”. Refresh the simpleWeb project inside
eclipse. Now Republish/package the simpleWeb project inside eclipse and start the Tomcat Server.
14




Make sure that your Database server is running:

C:javahsqldb>java -cp ./lib/hsqldb.jar org.hsqldb.Server
15




Also preferably run the “DatabaseManeger”


C:javahsqldb>java -cp ./lib/hsqldb.jar org.hsqldb.util.DatabaseManager




This will spawn a new window as shown:




Now open internet browser and type the following URL.

http://localhost:8080/simpleWeb/index.jsf
16




Click on link “Click Me”.




Click on button “Hello”




The Name & Course are empty. Now let’s add some name and courses into the database either via
SQL statements in “DatabaseManager” or by running the App.java. Make sure that your HSQLDB
database server is running. To run App.java inside eclipse right click on “App.java” and then select
“Run As” and then select “Java Application”. After it has finished running go back to your internet
explorer and click on refresh button.
17




That’s all to it.




Please feel free to email any errors to java-interview@hotmail.com. Also stay tuned at
    http://www.lulu.com/java-success for more tutorials and Java/J2EE interview
                                        resources.
18
Tutorial 10 – Maven 2


You may have noticed that there are some code repeats in pom.xml files in
simple and simpleWeb projects. Maven2 child pom.xml files can inherit from
parent pom.xml file. In this tutorial let’s clean up our project structures and the
pom.xml files.


Step 1: Exit out of eclipse and restructure your projects under C:tuitorials as follows:




Create a new folder “simple-tutorial” under “c:tutorials” and move the “simple” & “simpleWeb”
under “simple-tutorial”.


Step 2: Add the parent pom.xml under “c:tutorialssimple-tutorial” as shown below.
The parent pom.xml file will be shared by both the pom.xml files under
“c:tutorialssimple-tutorialsimple” and “c:tutorialssimple-tutorialsimpleWeb”.


c:tutorialssimple-tutorialpom.xml (parent pom.xml)
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/maven-v4_0_0.xsd">

   <modelVersion>4.0.0</modelVersion>
   <groupId>com.mytutorial</groupId>
   <artifactId>simple-tutorial</artifactId>
   <packaging>pom</packaging>
         <name>simple tutorials</name>
         <description>simple tutorials</description>
         <version>1.0</version>
         <url>http://www.lulu.com/java-success</url>
         <inceptionYear>2007</inceptionYear>
         <developers>
                  <developer>
                          <name>Arulkumaran</name>
                          <id>ak1</id>
                          <email>java-interview@hotmail.com</email>
                          <organization></organization>
19
                         <roles>
                                 <role>Senior Java Designer/Developer</role>
                        </roles>
                        <timezone>+10</timezone>
                </developer>
        </developers>

        <contributors>
                 <contributor>
                          <name>Sivayini</name>
                          <email></email>
                          <organization></organization>
                          <roles>
                                   <role>Java Developer</role>
                          </roles>
                 </contributor>
        </contributors>

        <modules>
               <module>simple</module>
               <module>simpleWeb</module>
        </modules>

        <build>
           <pluginManagement>
                 <plugins>
                    <plugin>
                          <groupId>org.apache.maven.plugins</groupId>
                          <artifactId>maven-compiler-plugin</artifactId>
                          <version>2.0.2</version>
                          <configuration>
                               <source>1.5</source>
                              <target>1.5</target>
                          </configuration>
                     </plugin>
                     <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-eclipse-plugin</artifactId>
                        <version>2.4</version>
                       <configuration>
                           <downloadSources>false</downloadSources>
                           <wtpversion>1.5</wtpversion>
                       </configuration>
                     </plugin>
                 </plugins>
             </pluginManagement>
        </build>

         <repositories>
                  <repository>
                           <id>maven-repository.dev.java.net</id>
                           <name>Java Dev Net Repository</name>
                           <url>http://download.java.net/maven/2/</url>
                           <releases>
                                    <enabled>true</enabled>
                                    <updatePolicy>never</updatePolicy>
                           </releases>
                           <snapshots>
                                    <enabled>false</enabled>
                           </snapshots>
                  </repository>
         </repositories>
</project>
20

c:tutorialssimple-tutorialsimplepom.xml (child pom.xml)

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         http://maven.apache.org/maven-v4_0_0.xsd">

        <modelVersion>4.0.0</modelVersion>
        <parent>
                  <groupId>com.mytutorial</groupId>
                  <artifactId>simple-tutorial</artifactId>
                  <version>1.0</version>
        </parent>
        <groupId>com.mytutorial</groupId>
        <artifactId>simple</artifactId>
        <packaging>jar</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>simple</name>
        <url>http://maven.apache.org</url>
        <dependencies>
                  <dependency>
                            <groupId>junit</groupId>
                            <artifactId>junit</artifactId>
                            <version>3.8.1</version>
                            <scope>test</scope>
                  </dependency>

                 <dependency>
                         <groupId>org.hibernate</groupId>
                         <artifactId>hibernate</artifactId>
                         <version>3.2.4.ga</version>
                 </dependency>

                 <dependency>
                         <groupId>hsqldb</groupId>
                         <artifactId>hsqldb</artifactId>
                         <version>1.8.0.7</version>
                 </dependency>

                 <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring</artifactId>
                         <version>2.0.6</version>
                 </dependency>

         </dependencies>
</project>

As you can see above this pom.xml file extends the parent pom.xml. All the repositories and plugins
are shared from the parent pom.xml file.


c:tutorialssimple-tutorialsimpleWebpom.xml (child pom.xml)
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-
         v4_0_0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <parent>
                 <groupId>com.mytutorial</groupId>
21
        <artifactId>simple-tutorial</artifactId>
        <version>1.0</version>
</parent>

<groupId>com.mytutorial</groupId>
<artifactId>simpleWeb</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>simpleWeb Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
         <dependency>
                  <groupId>com.mytutorial</groupId>
                  <artifactId>simple</artifactId>
                  <version>1.0-SNAPSHOT</version>
                  <type>jar</type>
          </dependency>

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

        <dependency>
                <groupId>commons-digester</groupId>
                <artifactId>commons-digester</artifactId>
                <version>1.8</version>
        </dependency>

        <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2</version>
        </dependency>

        <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring</artifactId>
                <version>2.0.6</version>
        </dependency>

        <!-- JSF/JSTL/Facelets -->
        <dependency>
                 <groupId>javax.faces</groupId>
                 <artifactId>jsf-api</artifactId>
                 <version>1.2</version>
        </dependency>
        <dependency>
                 <groupId>javax.faces</groupId>
                 <artifactId>jsf-impl</artifactId>
                 <version>1.2_04</version>
        </dependency>
        <dependency>
                 <groupId>com.sun.facelets</groupId>
                 <artifactId>jsf-facelets</artifactId>
                 <version>1.1.11</version>
        </dependency>
        <dependency>
                 <groupId>javax.servlet</groupId>
                 <artifactId>jstl</artifactId>
                 <version>1.1.2</version>
22
                    </dependency>
                    <dependency>
                            <groupId>javax.el</groupId>
                            <artifactId>el-api</artifactId>
                            <version>1.0</version>
                            <scope>provided</scope>
                    </dependency>
                    <dependency>
                            <groupId>com.sun.el</groupId>
                            <artifactId>el-ri</artifactId>
                            <version>1.0</version>
                    </dependency>

         </dependencies>
         <build>

                    <finalName>simpleWeb</finalName>
                    <pluginManagement/>
         </build>
</project>


Step 3: Run mvn commands. This time you can run from “C:tutorialssimple-tutorial” to build both
“simple” & “simpleWeb”. This is possible due to <modules> definition in parent pom.xml file.

<modules>
       <module>simple</module>
       <module>simpleWeb</module>
</modules>

Now run the following command for eclipse:

C:tutorialssimple-tutorial>mvn eclipse:clean eclipse:eclipse
23
STEP: WorkAround

The JSF 1.2 requires eclipse web facet 2.5. You need to open the file
“org.eclipse.wst.common.project.facet.core.xml” under C:tutorialssimple-
tutorialsimpleWeb.settings as shown below from version=2.4 to version=2.5. Every time you use
the eclipse:clean command, you will have to manually fix this up as shown below.




Run the following command:

C:tutorialssimple-tutorial>mvn clean install




Step 4: Open up your eclipse workspace at “C:javaeclipse-tutorial-workspace”. You will get a
screen as follows:
24




Delete the “simple” & “simpleWeb” (select “Do not delete contents” and pres OK ) projects and
import them again.
25
26




Step 5: Publish the war file inside eclipse.
27




After publishing, run the Tomcat Server.


Step 6: Run the HSQLDB server in a command prompt and also open the “DatabaseManager” in
another command prompt.

Make sure that your Database server is running:

C:javahsqldb>java -cp ./lib/hsqldb.jar org.hsqldb.Server




Also preferably run the “DatabaseManeger”

C:javahsqldb>java -cp ./lib/hsqldb.jar org.hsqldb.util.DatabaseManager




This will spawn a new window as shown:
28




Open an internet browser and type the URL

http://localhost:8080/simpleWeb/index.jsf




That’s all to it. Also try deploying outside Tomcat. Stop the Tomcat server inside eclipse.
29

If you already have a “simpleWeb” folder under “C:javaTomcat6.0webapps” delete it first. Then
copy the “simpleWeb.war” into Tomcat’s “C:javaTomcat6.0webapps” folder. Double click on
“tomcat6.exe” to start the server.




Open an internet browser and type the URL

http://localhost:8080/simpleWeb/index.jsf




         You can find some fundamental Questions & Answers relating to Hibernate/Spring under
        “Emerging technologies/framework” section in Java/J2EE Job Interview Companion at
                                 http://www.lulu.com/content/192463




Please feel free to email any errors to java-interview@hotmail.com. Also stay tuned at
    http://www.lulu.com/java-success for more tutorials and Java/J2EE interview
                                        resources.

Weitere ähnliche Inhalte

Was ist angesagt?

Tycho - good, bad or ugly ?
Tycho - good, bad or ugly ?Tycho - good, bad or ugly ?
Tycho - good, bad or ugly ?Max Andersen
 
JavaDo#09 Spring boot入門ハンズオン
JavaDo#09 Spring boot入門ハンズオンJavaDo#09 Spring boot入門ハンズオン
JavaDo#09 Spring boot入門ハンズオンharuki ueno
 
How to be effective with JBoss Developer Studio
How to be effective with JBoss Developer StudioHow to be effective with JBoss Developer Studio
How to be effective with JBoss Developer StudioMax Andersen
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudCarlos Sanchez
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerArun Gupta
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
 
Hibernate, Spring, Eclipse, HSQL Database & Maven tutorial
Hibernate, Spring, Eclipse, HSQL Database & Maven tutorialHibernate, Spring, Eclipse, HSQL Database & Maven tutorial
Hibernate, Spring, Eclipse, HSQL Database & Maven tutorialRaghavan Mohan
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Arun Gupta
 
Spring boot入門ハンズオン第二回
Spring boot入門ハンズオン第二回Spring boot入門ハンズオン第二回
Spring boot入門ハンズオン第二回haruki ueno
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGArun Gupta
 
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010Jagadish Prasath
 
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
Java EE 6 = Less Code + More Power (Tutorial)  [5th IndicThreads Conference O...Java EE 6 = Less Code + More Power (Tutorial)  [5th IndicThreads Conference O...
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...IndicThreads
 
Maven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working TogetherMaven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working TogetherCarlos Sanchez
 
Enterprise Maven Repository BOF
Enterprise Maven Repository BOFEnterprise Maven Repository BOF
Enterprise Maven Repository BOFMax Andersen
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudCarlos Sanchez
 
ICEfaces EE - Enterprise-ready JSF Ajax Framework
ICEfaces EE - Enterprise-ready JSF Ajax FrameworkICEfaces EE - Enterprise-ready JSF Ajax Framework
ICEfaces EE - Enterprise-ready JSF Ajax FrameworkICEsoftTech
 
Simple module Development in Joomla! 2.5
Simple module Development in Joomla! 2.5Simple module Development in Joomla! 2.5
Simple module Development in Joomla! 2.5Vishwash Gaur
 
Spring boot for buidling microservices
Spring boot for buidling microservicesSpring boot for buidling microservices
Spring boot for buidling microservicesNilanjan Roy
 
Maven, Eclipse and OSGi Working Together - Carlos Sanchez
Maven, Eclipse and OSGi Working Together - Carlos SanchezMaven, Eclipse and OSGi Working Together - Carlos Sanchez
Maven, Eclipse and OSGi Working Together - Carlos Sanchezmfrancis
 

Was ist angesagt? (20)

Tycho - good, bad or ugly ?
Tycho - good, bad or ugly ?Tycho - good, bad or ugly ?
Tycho - good, bad or ugly ?
 
JavaDo#09 Spring boot入門ハンズオン
JavaDo#09 Spring boot入門ハンズオンJavaDo#09 Spring boot入門ハンズオン
JavaDo#09 Spring boot入門ハンズオン
 
How to be effective with JBoss Developer Studio
How to be effective with JBoss Developer StudioHow to be effective with JBoss Developer Studio
How to be effective with JBoss Developer Studio
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for futureJava EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
 
Hibernate, Spring, Eclipse, HSQL Database & Maven tutorial
Hibernate, Spring, Eclipse, HSQL Database & Maven tutorialHibernate, Spring, Eclipse, HSQL Database & Maven tutorial
Hibernate, Spring, Eclipse, HSQL Database & Maven tutorial
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
 
Spring boot入門ハンズオン第二回
Spring boot入門ハンズオン第二回Spring boot入門ハンズオン第二回
Spring boot入門ハンズオン第二回
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
 
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
 
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
Java EE 6 = Less Code + More Power (Tutorial)  [5th IndicThreads Conference O...Java EE 6 = Less Code + More Power (Tutorial)  [5th IndicThreads Conference O...
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
 
Apache Maven for AT/QC
Apache Maven for AT/QCApache Maven for AT/QC
Apache Maven for AT/QC
 
Maven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working TogetherMaven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working Together
 
Enterprise Maven Repository BOF
Enterprise Maven Repository BOFEnterprise Maven Repository BOF
Enterprise Maven Repository BOF
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
ICEfaces EE - Enterprise-ready JSF Ajax Framework
ICEfaces EE - Enterprise-ready JSF Ajax FrameworkICEfaces EE - Enterprise-ready JSF Ajax Framework
ICEfaces EE - Enterprise-ready JSF Ajax Framework
 
Simple module Development in Joomla! 2.5
Simple module Development in Joomla! 2.5Simple module Development in Joomla! 2.5
Simple module Development in Joomla! 2.5
 
Spring boot for buidling microservices
Spring boot for buidling microservicesSpring boot for buidling microservices
Spring boot for buidling microservices
 
Maven, Eclipse and OSGi Working Together - Carlos Sanchez
Maven, Eclipse and OSGi Working Together - Carlos SanchezMaven, Eclipse and OSGi Working Together - Carlos Sanchez
Maven, Eclipse and OSGi Working Together - Carlos Sanchez
 

Ähnlich wie Jsf, facelets, spring, hibernate, maven2

Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsRaghavan Mohan
 
Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xmlakmini
 
Introduction To Maven2
Introduction To Maven2Introduction To Maven2
Introduction To Maven2Shuji Watanabe
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!cyrilpicat
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsrfelden
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with MavenSid Anand
 
Gradle: From Extreme to Mainstream
Gradle: From Extreme to MainstreamGradle: From Extreme to Mainstream
Gradle: From Extreme to MainstreamBTI360
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Introboyw165
 
An Introduction to Maven and Flex
An Introduction to Maven and FlexAn Introduction to Maven and Flex
An Introduction to Maven and FlexJustin J. Moses
 
Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)Robert Scholte
 

Ähnlich wie Jsf, facelets, spring, hibernate, maven2 (20)

Spring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorialsSpring Web Service, Spring JMS, Eclipse & Maven tutorials
Spring Web Service, Spring JMS, Eclipse & Maven tutorials
 
Pom configuration java xml
Pom configuration java xmlPom configuration java xml
Pom configuration java xml
 
Apache Maven basics
Apache Maven basicsApache Maven basics
Apache Maven basics
 
Introduction To Maven2
Introduction To Maven2Introduction To Maven2
Introduction To Maven2
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developments
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
Ant, Maven and Jenkins
Ant, Maven and JenkinsAnt, Maven and Jenkins
Ant, Maven and Jenkins
 
Maven in Mule
Maven in MuleMaven in Mule
Maven in Mule
 
Gradle: From Extreme to Mainstream
Gradle: From Extreme to MainstreamGradle: From Extreme to Mainstream
Gradle: From Extreme to Mainstream
 
Exploring Maven SVN GIT
Exploring Maven SVN GITExploring Maven SVN GIT
Exploring Maven SVN GIT
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Pom
PomPom
Pom
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Intro
 
AOP sec3.pptx
AOP sec3.pptxAOP sec3.pptx
AOP sec3.pptx
 
An Introduction to Maven and Flex
An Introduction to Maven and FlexAn Introduction to Maven and Flex
An Introduction to Maven and Flex
 
Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)
 

Mehr von Raghavan Mohan

Accelerate with BIRT and Actuate11
Accelerate with BIRT and Actuate11Accelerate with BIRT and Actuate11
Accelerate with BIRT and Actuate11Raghavan Mohan
 
Sachin Tendulkar Resume
Sachin Tendulkar ResumeSachin Tendulkar Resume
Sachin Tendulkar ResumeRaghavan Mohan
 
Senator Barrack Obama Resume
Senator Barrack Obama ResumeSenator Barrack Obama Resume
Senator Barrack Obama ResumeRaghavan Mohan
 
23617968 digit-fast-track-jan-2009-php
23617968 digit-fast-track-jan-2009-php23617968 digit-fast-track-jan-2009-php
23617968 digit-fast-track-jan-2009-phpRaghavan Mohan
 
Quality - Douglas Crockford
Quality - Douglas CrockfordQuality - Douglas Crockford
Quality - Douglas CrockfordRaghavan Mohan
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming LanguageRaghavan Mohan
 

Mehr von Raghavan Mohan (12)

Accelerate with BIRT and Actuate11
Accelerate with BIRT and Actuate11Accelerate with BIRT and Actuate11
Accelerate with BIRT and Actuate11
 
Who is BIRT
Who is BIRTWho is BIRT
Who is BIRT
 
Introduction to BIRT
Introduction to BIRTIntroduction to BIRT
Introduction to BIRT
 
Sachin Tendulkar Resume
Sachin Tendulkar ResumeSachin Tendulkar Resume
Sachin Tendulkar Resume
 
Manmohan Singh Resume
Manmohan Singh ResumeManmohan Singh Resume
Manmohan Singh Resume
 
Senator Barrack Obama Resume
Senator Barrack Obama ResumeSenator Barrack Obama Resume
Senator Barrack Obama Resume
 
Java/J2EE CV Guide
Java/J2EE CV GuideJava/J2EE CV Guide
Java/J2EE CV Guide
 
Java/J2EE Companion
Java/J2EE CompanionJava/J2EE Companion
Java/J2EE Companion
 
Fast Track to Ajax.
Fast Track to Ajax.Fast Track to Ajax.
Fast Track to Ajax.
 
23617968 digit-fast-track-jan-2009-php
23617968 digit-fast-track-jan-2009-php23617968 digit-fast-track-jan-2009-php
23617968 digit-fast-track-jan-2009-php
 
Quality - Douglas Crockford
Quality - Douglas CrockfordQuality - Douglas Crockford
Quality - Douglas Crockford
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming Language
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Jsf, facelets, spring, hibernate, maven2

  • 1. 1 The author has made every effort in the preparation of this book to ensure the accuracy of the information. However, information in this book is sold without warranty either expressed or implied. The author will not be held liable for any damages caused or alleged to be caused either directly or indirectly by this book. JSF, Facelets, Spring, Hibernate, Maven2 & Eclipse Putting it All together by K. Arulkumaran & A. Sivayini Website: http://www.lulu.com/java-success Feedback email: java-interview@hotmail.com
  • 2. 2 Table Of Contents Notations ..................................................................................................................... 3 Tutorial 9 – JSF, Facelets, Spring, Hibernate & Maven 2 ............................... 4 Tutorial 10 – Maven 2 ............................................................................................. 18
  • 3. 3 Notations Command prompt: Eclipse: File Explorer or Windows Explorer: Internet Explorer:
  • 4. 4 Tutorial 9 – JSF, Facelets, Spring, Hibernate & Maven 2 This tutorial will put together tutorials 1-8. It will also incorporate dependencies between the simpleWeb (c:tutorialsjsimpleWeb) and simple (c:tutorialsjsimple) projects as it would be in a real application. Step 1: Firstly create a dependency between simpleWeb and simple. In fact simpleWeb depends on simple for business service functions and data access and storage. So we need to define this in our pom.xml file under simpleWeb (c:tutorialsjsimpleWeb). <dependency> <groupId>com.mytutorial</groupId> <artifactId>simple</artifactId> <version>1.0-SNAPSHOT</version> <type>jar</type> </dependency> c:tutorialssimpleWebpom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven- v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mytutorial</groupId> <artifactId>simpleWeb</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>simpleWeb Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>com.mytutorial</groupId> <artifactId>simple</artifactId> <version>1.0-SNAPSHOT</version> <type>jar</type> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-digester</groupId> <artifactId>commons-digester</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2</version> </dependency>
  • 5. 5 <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.0.6</version> </dependency> <!-- JSF/JSTL/Facelets --> <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-api</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-impl</artifactId> <version>1.2_04</version> </dependency> <dependency> <groupId>com.sun.facelets</groupId> <artifactId>jsf-facelets</artifactId> <version>1.1.11</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>javax.el</groupId> <artifactId>el-api</artifactId> <version>1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.sun.el</groupId> <artifactId>el-ri</artifactId> <version>1.0</version> </dependency> </dependencies> <build> <finalName>simpleWeb</finalName> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <version>2.4</version> <configuration> <downloadSources>false</downloadSources> <wtpversion>1.5</wtpversion> </configuration> </plugin> </plugins>
  • 6. 6 </pluginManagement> </build> <repositories> <repository> <id>maven-repository.dev.java.net</id> <name>Java Dev Net Repository</name> <url>http://download.java.net/maven/2/</url> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project> Step 2: Exit out of eclipse and run the following maven command in a command prompt: C:tutorialssimpleWeb>mvn eclipse:clean eclipse:eclipse STEP: WorkAround The JSF 1.2 requires eclipse web facet 2.5. You need to open the file “org.eclipse.wst.common.project.facet.core.xml” under C:tutorialssimpleWeb.settings as shown below from version=2.4 to version=2.5. Every time you use the eclipse:clean command, you will have to manually fix this up as shown below. Step 3: Get back into eclipse and refresh the simpleWeb project by highlighting it and pressing “F5”. Now right click and select “Properties”.
  • 7. 7 Since simpleWeb depends on simple maven2 has transitively brought all it dependencies into the simpleWeb’s build path. In order to build a war file inside eclipse (pom.xml file is useful for building war file and deploying externally) you need to define the J2EE module dependencies inside eclipse by right clicking on simpleWeb and then selecting “Properties” and then “J2EE module depndencies”. We need most jar files except for the el-api-1.0.jar & servlet-api-2.3.jar. Make sure that these 2 jars are not ticked because they are available under Tomcat’s lib directory. All the ticked jar files end up in “/WEB-INF/lib” directory when packaged inside Eclipse. When you package it outside eclipse using mvn command “mvn clean package” pom.xml file will be used for packaging these dependency jar files under “/WEB-INF/lib” inside the war file
  • 8. 8 Step 4: Let’s make the following changes for this tutorial App.java in simple project package com.mytutorial; import java.util.ArrayList; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext( "applicationContext- mytutorial.xml"); List<Course> courses = new ArrayList<Course>(10); Course c1 = new Course(); c1.setName("John"); c1.setCourse("Java"); courses.add(c1); Course c2 = new Course(); c2.setName("Peter"); c2.setCourse("Hibernate"); courses.add(c2); //CourseService service = new CourseServiceImpl(); CourseService service = (CourseService) ctx.getBean("courseService"); service.processCourse(courses); List<Course> listCourses = service.getCourses(); //added System.out.println("Retrieved courses and names are " + listCourses); //added } } CourseService.java in simple project package com.mytutorial; import java.util.List; public interface CourseService { public abstract void processCourse(List<Course> courses); public abstract List<Course> getCourses(); //added }
  • 9. 9 CourseServiceImpl.java in simple project package com.mytutorial; import java.util.List; public class CourseServiceImpl implements CourseService { private CourseDao courseDao; public CourseDao getCourseDao() { return courseDao; } public void setCourseDao(CourseDao courseDao) { this.courseDao = courseDao; } //Modified public void processCourse(List<Course> courses) { // CourseDao dao = new CourseDaoImpl(); courseDao.create(courses); } //Added public List<Course> getCourses() { List<Course> list = getCourseDao().findAll(); return list; } } CourseControllerBean.java in simpleWeb project package com.mytutorial; import java.util.List; public class CourseControllerBean { private CourseService courseService; // injected via spring public List<Course> getCourses(){ return getCourseService().getCourses(); } public CourseService getCourseService() { return courseService; } public void setCourseService(CourseService courseService) { this.courseService = courseService; } } greeting.jspx in simpleWeb project <?xml version="1.0" encoding="ISO-8859-1" ?> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" version="2.0">
  • 10. 10 <ui:composition> <html> <head> <title>greeting page</title> </head> <body> <f:loadBundle basename="com.mytutorial.messages" var="msg" /> <h3><h:outputText value="#{msg.greeting_text}" />, <h:outputText value="#{personBean.personName}" /> <h:outputText value="#{msg.sign}" /></h3> <h:dataTable id="courses" value="#{courseBean.courses}" var="course" border="1"> <h:column> <f:facet name="header"> <h:outputText value="Name" /> </f:facet> <h:outputText value="#{course.name}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Course" /> </f:facet> <h:outputText value="#{course.course}" /> </h:column> </h:dataTable> </body> </html> </ui:composition> </jsp:root>
  • 11. 11 applicationContext.xml in simpleWeb project <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> <bean id="person" class="com.mytutorial.PersonBean" /> <bean id="personBean" class="com.mytutorial.PersonControllerBean" scope="session"> <property name="person" ref="person" /> </bean> <bean id="courseBean" class="com.mytutorial.CourseControllerBean" scope="session"> <property name="courseService" ref="courseService" /> </bean> </beans>
  • 12. 12 finally the web.xml file. web.xml in simpleWeb project: find both spring applicationContext files. <context-param> <param-name>contextConfigLocation</param-name> <param-value> <![CDATA[ /WEB-INF/applicationContext.xml classpath:applicationContext-mytutorial.xml ]]> </param-value> </context-param> The web.xml file should look like: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/faces-config.xml</param-value> </context-param> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.jspx</param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value> <![CDATA[ /WEB-INF/applicationContext.xml classpath:applicationContext-mytutorial.xml ]]> </param-value> </context-param>
  • 13. 13 <!-- Special Debug Output for Development --> <context-param> <param-name>facelets.DEVELOPMENT</param-name> <param-value>true</param-value> </context-param> <!-- Optional JSF-RI Parameters to Help Debug --> <context-param> <param-name>com.sun.faces.validateXml</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>com.sun.faces.verifyObjects</param-name> <param-value>true</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> <!-- Faces Servlet --> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- Faces Servlet Mapping --> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> </web-app> Step 5: Now install the “simple” project into maven repository with the new changes by: C:tutorialssimple>mvn clean install This should install the “simple-1.0-SNAPSHOT.jar” under “C:java.m2repositorycommytutorialsimple1.0-SNAPSHOT”. Refresh the simpleWeb project inside eclipse. Now Republish/package the simpleWeb project inside eclipse and start the Tomcat Server.
  • 14. 14 Make sure that your Database server is running: C:javahsqldb>java -cp ./lib/hsqldb.jar org.hsqldb.Server
  • 15. 15 Also preferably run the “DatabaseManeger” C:javahsqldb>java -cp ./lib/hsqldb.jar org.hsqldb.util.DatabaseManager This will spawn a new window as shown: Now open internet browser and type the following URL. http://localhost:8080/simpleWeb/index.jsf
  • 16. 16 Click on link “Click Me”. Click on button “Hello” The Name & Course are empty. Now let’s add some name and courses into the database either via SQL statements in “DatabaseManager” or by running the App.java. Make sure that your HSQLDB database server is running. To run App.java inside eclipse right click on “App.java” and then select “Run As” and then select “Java Application”. After it has finished running go back to your internet explorer and click on refresh button.
  • 17. 17 That’s all to it. Please feel free to email any errors to java-interview@hotmail.com. Also stay tuned at http://www.lulu.com/java-success for more tutorials and Java/J2EE interview resources.
  • 18. 18 Tutorial 10 – Maven 2 You may have noticed that there are some code repeats in pom.xml files in simple and simpleWeb projects. Maven2 child pom.xml files can inherit from parent pom.xml file. In this tutorial let’s clean up our project structures and the pom.xml files. Step 1: Exit out of eclipse and restructure your projects under C:tuitorials as follows: Create a new folder “simple-tutorial” under “c:tutorials” and move the “simple” & “simpleWeb” under “simple-tutorial”. Step 2: Add the parent pom.xml under “c:tutorialssimple-tutorial” as shown below. The parent pom.xml file will be shared by both the pom.xml files under “c:tutorialssimple-tutorialsimple” and “c:tutorialssimple-tutorialsimpleWeb”. c:tutorialssimple-tutorialpom.xml (parent pom.xml) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mytutorial</groupId> <artifactId>simple-tutorial</artifactId> <packaging>pom</packaging> <name>simple tutorials</name> <description>simple tutorials</description> <version>1.0</version> <url>http://www.lulu.com/java-success</url> <inceptionYear>2007</inceptionYear> <developers> <developer> <name>Arulkumaran</name> <id>ak1</id> <email>java-interview@hotmail.com</email> <organization></organization>
  • 19. 19 <roles> <role>Senior Java Designer/Developer</role> </roles> <timezone>+10</timezone> </developer> </developers> <contributors> <contributor> <name>Sivayini</name> <email></email> <organization></organization> <roles> <role>Java Developer</role> </roles> </contributor> </contributors> <modules> <module>simple</module> <module>simpleWeb</module> </modules> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <version>2.4</version> <configuration> <downloadSources>false</downloadSources> <wtpversion>1.5</wtpversion> </configuration> </plugin> </plugins> </pluginManagement> </build> <repositories> <repository> <id>maven-repository.dev.java.net</id> <name>Java Dev Net Repository</name> <url>http://download.java.net/maven/2/</url> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project>
  • 20. 20 c:tutorialssimple-tutorialsimplepom.xml (child pom.xml) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.mytutorial</groupId> <artifactId>simple-tutorial</artifactId> <version>1.0</version> </parent> <groupId>com.mytutorial</groupId> <artifactId>simple</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>simple</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.2.4.ga</version> </dependency> <dependency> <groupId>hsqldb</groupId> <artifactId>hsqldb</artifactId> <version>1.8.0.7</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.0.6</version> </dependency> </dependencies> </project> As you can see above this pom.xml file extends the parent pom.xml. All the repositories and plugins are shared from the parent pom.xml file. c:tutorialssimple-tutorialsimpleWebpom.xml (child pom.xml) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven- v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.mytutorial</groupId>
  • 21. 21 <artifactId>simple-tutorial</artifactId> <version>1.0</version> </parent> <groupId>com.mytutorial</groupId> <artifactId>simpleWeb</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>simpleWeb Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>com.mytutorial</groupId> <artifactId>simple</artifactId> <version>1.0-SNAPSHOT</version> <type>jar</type> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-digester</groupId> <artifactId>commons-digester</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.0.6</version> </dependency> <!-- JSF/JSTL/Facelets --> <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-api</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-impl</artifactId> <version>1.2_04</version> </dependency> <dependency> <groupId>com.sun.facelets</groupId> <artifactId>jsf-facelets</artifactId> <version>1.1.11</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version>
  • 22. 22 </dependency> <dependency> <groupId>javax.el</groupId> <artifactId>el-api</artifactId> <version>1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.sun.el</groupId> <artifactId>el-ri</artifactId> <version>1.0</version> </dependency> </dependencies> <build> <finalName>simpleWeb</finalName> <pluginManagement/> </build> </project> Step 3: Run mvn commands. This time you can run from “C:tutorialssimple-tutorial” to build both “simple” & “simpleWeb”. This is possible due to <modules> definition in parent pom.xml file. <modules> <module>simple</module> <module>simpleWeb</module> </modules> Now run the following command for eclipse: C:tutorialssimple-tutorial>mvn eclipse:clean eclipse:eclipse
  • 23. 23 STEP: WorkAround The JSF 1.2 requires eclipse web facet 2.5. You need to open the file “org.eclipse.wst.common.project.facet.core.xml” under C:tutorialssimple- tutorialsimpleWeb.settings as shown below from version=2.4 to version=2.5. Every time you use the eclipse:clean command, you will have to manually fix this up as shown below. Run the following command: C:tutorialssimple-tutorial>mvn clean install Step 4: Open up your eclipse workspace at “C:javaeclipse-tutorial-workspace”. You will get a screen as follows:
  • 24. 24 Delete the “simple” & “simpleWeb” (select “Do not delete contents” and pres OK ) projects and import them again.
  • 25. 25
  • 26. 26 Step 5: Publish the war file inside eclipse.
  • 27. 27 After publishing, run the Tomcat Server. Step 6: Run the HSQLDB server in a command prompt and also open the “DatabaseManager” in another command prompt. Make sure that your Database server is running: C:javahsqldb>java -cp ./lib/hsqldb.jar org.hsqldb.Server Also preferably run the “DatabaseManeger” C:javahsqldb>java -cp ./lib/hsqldb.jar org.hsqldb.util.DatabaseManager This will spawn a new window as shown:
  • 28. 28 Open an internet browser and type the URL http://localhost:8080/simpleWeb/index.jsf That’s all to it. Also try deploying outside Tomcat. Stop the Tomcat server inside eclipse.
  • 29. 29 If you already have a “simpleWeb” folder under “C:javaTomcat6.0webapps” delete it first. Then copy the “simpleWeb.war” into Tomcat’s “C:javaTomcat6.0webapps” folder. Double click on “tomcat6.exe” to start the server. Open an internet browser and type the URL http://localhost:8080/simpleWeb/index.jsf You can find some fundamental Questions & Answers relating to Hibernate/Spring under “Emerging technologies/framework” section in Java/J2EE Job Interview Companion at http://www.lulu.com/content/192463 Please feel free to email any errors to java-interview@hotmail.com. Also stay tuned at http://www.lulu.com/java-success for more tutorials and Java/J2EE interview resources.