Skip to main content

JSF Spring Integration Steps

JSF-Spring integration is very straightforward and simple to do.


Step 1 – Changes in Web.xml


Your Web Application need to be aware of Spring's Web Application Context. This is defined in the Web.xml.  


<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>


Your Web Application also needs to know the location of Spring Beans. Definition of one or more "contextConfigLocation" does exactly this job.


<context-param>

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

<param-value>classpath*:/applicationContext.xml </param-value>

</context-param>


The above statement makes it possible to load classless from applicationContext.xml, which is in the classpath.


Step 2 -  Define Beans in applicationContext.xml


Below is an example of applicationContext.xml


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

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="destinationService" class="com.cyberworkz.leisure.services.DestinationServiceImpl">

</bean>

</beans>


Step 3 Changes in the FacesConfig.xml


Variable names in JSF are resolved by "Resolvers". For every "bean" that is declared in the faces-config.xml, JSF resolver will try to construct and associate the object with the identifier. Now that we are using Spring, we have to let JSF Framework know that instead of the default JSF resolver, Spring resolver should be used. Spring's distribution comes with a pre-defined Variable resolver called org.springframework.web.jsf.DelegatingVariableResolver. The following declaration in faces-config.xml will do exactly that:


<application>

<variable-resolver>

org.springframework.web.jsf.DelegatingVariableResolver

</variable-resolver>

</application>


And that’s all we need to do.

Comments

Popular posts from this blog

SAAS Simple Maturity Model

There are two architectural models – commonly referred as SAAS Maturity models- that describe the transition of a service to what is called Multi-tenant efficient, highly scalable application. The SAAS Maturity model described by Microsoft has four distinct stages and is illustrated below. Another similar well-known model for SaaS-maturity is known as Forrester-model but adds another stage known as "Dynamic Business Apps-as-a-service". The three key Attributes of a SAAS Architecture: Configurability: Metadata used to configure the way the application behaves for customers Multi-tenant Efficiency : Maximizing the sharing of resources across tenants Scalability: Maximizing concurrency, resource efficiency SAAS Simple Maturity Model (Microsoft, 2006) SaaS Maturity Model (Forres...

CXF Example –Web Service Using Spring and Maven

Apache CXF is an open source services framework. CXF helps you build Web Services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI. Support for bottom up approach and top down approach. Support for Standards JAX-WS, JSR-181, SAAJ, JAX-RS SOAP 1.1, 1.2, WS-I BasicProfile, WS-Security, WS-Addressing, WS-RM, WS-Policy WSDL 1.1 MTOM Building Web Services – Example 1 Develop a simple Web Service using CXF framework. The example in this case is an InterestRate Service. Tools / technologies Version CXF 2.1 Maven 2.0 Tomcat apache-tomcat-6.0.24 JDK java version 1.6.0_20       The Application Scope The "Interest Rate Service" application demonstrates how easily you can develop a Web Service using CXF frame work. The WSDL service definition defines three operations. Below is the InterestRateService interface.   @WebS...

CXF – Webservice Example – Contract first

We will use the same WSDL document that we used in our earlier example. The contract is given below: Step: 1 Run the wsdl2java tool to generate the requires service class, JAXB input output message classes. wsdl2java.bat -d src -ant -impl -server rateService.wsdl This command will generate: JAXB Input and Output message classes, Service Interface, Service Implementation class, Standalone Server class and an ant build file to build the service. If you open up these files in the editor, then you see various JAXB annotations on classes and methods which are used to map a Java class to XML. It will also generate Request and Response Wrapper classes as with the JAX-WS specification. It also generate Request and Response Wrapper classes as with the JAX-WS specification ...