Announcement Announcement Module
Collapse
No announcement yet.
Hibernate spring Integration Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hibernate spring Integration

    Hi,

    I am trying to use use hibernate withstruts & mysql

    I tried the petclinic example with hibernate it worked.

    So now I am trying to do it for the jpetstore example.

    I have done following changes in jpetstore

    My dataAccessContext-local.xml is as follows
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http&#58;//www.springframework.org/dtd/spring-beans.dtd">
    
    
    <beans>
    
       <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="/WEB-INF/jdbc.properties"/>
           
        </bean>
     
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            
            <property name="mappingResources">
                <value>petstore.hbm.xml</value>
            </property>
            
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">$&#123;hibernate.dialect&#125;</prop>
                    <prop key="hibernate.show_sql">true</prop>
                    <prop key="hibernate.generate_statistics">true</prop>
                </props>
            </property>
    
    
            <property name="eventListeners">
                <map>
                    <entry key="merge">
                        <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/>
                    </entry>
                </map>
            </property>
     
        </bean>   
    
        <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
    
    
        <!-- ========================= RESOURCE DEFINITIONS ========================= -->
        
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            <property name="driverClassName" value="$&#123;jdbc.driverClassName&#125;"/>
            <property name="url" value="$&#123;jdbc.url&#125;"/>
            <property name="username" value="$&#123;jdbc.username&#125;"/>
            <property name="password" value="$&#123;jdbc.password&#125;"/>
        </bean>
        
        
       <!-- 
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
       -->
        
    
    
        <!-- ========================= DAO DEFINITIONS&#58; IBATIS IMPLEMENTATIONS ========================= -->
    
        <bean id="accountDao" class="org.springframework.samples.jpetstore.dao.hibernate.HibernateImplAccountDao">
            <property  name="sessionFactory" ref="sessionFactory"  />  
    
        </bean>
    
    </beans>
    My application-Context-hibernate.xml is as follows
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http&#58;//www.springframework.org/dtd/spring-beans.dtd">
    
    <beans>
    
        <!-- ========================= BUSINESS OBJECT DEFINITIONS ========================= -->
    <bean id="accountValidator" class="org.springframework.samples.jpetstore.domain.logic.AccountValidator"/>
    
    <bean id="orderValidator" class="org.springframework.samples.jpetstore.domain.logic.OrderValidator"/>
    
        <bean id="petStore" parent="store">
            <property name="target">
                <bean class="org.springframework.samples.jpetstore.domain.logic.PetStoreImpl">
                    <property name="accountDao" ref="accountDao"/>               
                </bean>
            </property>
         </bean>
    
        <bean id="store" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager" ref="transactionManager"/>            
              <property name="transactionAttributes">
                <props>
                    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="store*">PROPAGATION_REQUIRED</prop>
                </props>
            </property>
        </bean>
    
        <bean name="petclinic&#58;service=hibernateStatistics" class="org.hibernate.jmx.StatisticsService">
            <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
    
        <!-- ========================= JMX EXPORTER DEFINITION ========================= -->
     
        <bean id="jmxExporter" class="org.springframework.jmx.export.MBeanExporter">
            <property name="autodetect" value="true"/>
        </bean>
    
    </beans>
    But I am getting following error while the beans getting loaded in the jakarta-tomcat-5.5.9 screen

    SEVERE: Context initialization failed
    org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/dataAccessContext-local.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.ja va:2365)
    at java.lang.Class.getDeclaredMethods(Class.java:1763 )
    at java.beans.Introspector$1.run(Introspector.java:12 59)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.beans.Introspector.getPublicDeclaredMethods(I ntrospector.java:1257)
    at java.beans.Introspector.getTargetMethodInfo(Intros pector.java:1125)
    at java.beans.Introspector.getBeanInfo(Introspector.j ava:383)
    at java.beans.Introspector.getBeanInfo(Introspector.j ava:155)
    at org.springframework.beans.CachedIntrospectionResul ts.<init>(CachedIntrospectionResults.java:140)
    at org.springframework.beans.CachedIntrospectionResul ts.forClass(CachedIntrospectionResults.java:82)
    at org.springframework.beans.BeanWrapperImpl.setIntro spectionClass(BeanWrapperImpl.java:370)
    at org.springframework.beans.BeanWrapperImpl.setWrapp edInstance(BeanWrapperImpl.java:328)
    at org.springframework.beans.BeanWrapperImpl.setWrapp edInstance(BeanWrapperImpl.java:310)
    at org.springframework.beans.BeanWrapperImpl.<init>(B eanWrapperImpl.java:192)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBean(AbstractAuto wireCapableBeanFactory.java:327)
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:226)
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:147)
    at org.springframework.beans.factory.support.DefaultL istableBeanFactory.preInstantiateSingletons(Defaul tListableBeanFactory.java:270)
    at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:312)
    at org.springframework.web.context.support.AbstractRe freshableWebApplicationContext.refresh(AbstractRef reshableWebApplicationContext.java:134)
    at org.springframework.web.context.ContextLoader.crea teWebApplicationContext(ContextLoader.java:230)
    at org.springframework.web.context.ContextLoader.init WebApplicationContext(ContextLoader.java:156)
    at org.springframework.web.context.ContextLoaderListe ner.contextInitialized(ContextLoaderListener.java: 48)
    at org.apache.catalina.core.StandardContext.listenerS tart(StandardContext.java:3669)
    at org.apache.catalina.core.StandardContext.start(Sta ndardContext.java:4104)
    at org.apache.catalina.core.ContainerBase.addChildInt ernal(ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(Co ntainerBase.java:739)
    at org.apache.catalina.core.StandardHost.addChild(Sta ndardHost.java:524)
    at org.apache.catalina.startup.HostConfig.deployWAR(H ostConfig.java:788)
    at org.apache.catalina.startup.HostConfig.deployWARs( HostConfig.java:677)
    at org.apache.catalina.startup.HostConfig.deployApps( HostConfig.java:473)
    at org.apache.catalina.startup.HostConfig.start(HostC onfig.java:1102)
    at org.apache.catalina.startup.HostConfig.lifecycleEv ent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLife cycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(Conta inerBase.java:1020)
    at org.apache.catalina.core.StandardHost.start(Standa rdHost.java:718)
    at org.apache.catalina.core.ContainerBase.start(Conta inerBase.java:1012)
    at org.apache.catalina.core.StandardEngine.start(Stan dardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(Sta ndardService.java:450)
    at org.apache.catalina.core.StandardServer.start(Stan dardServer.java:683)
    at org.apache.catalina.startup.Catalina.start(Catalin a.java:537)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootst rap.java:271)
    at org.apache.catalina.startup.Bootstrap.main(Bootstr ap.java:409)
    Oct 6, 2005 10:50:46 AM org.apache.catalina.core.StandardContext start
    SEVERE: Error listenerStart
    Oct 6, 2005 10:50:46 AM org.apache.catalina.core.StandardContext start
    SEVERE: Context [/jpetstore] startup failed due to previous errors
    Oct 6, 2005 10:50:47 AM org.apache.coyote.http11.Http11Protocol start
    INFO: Starting Coyote HTTP/1.1 on http-8080
    Oct 6, 2005 10:50:47 AM org.apache.jk.common.ChannelSocket init
    INFO: JK: ajp13 listening on /0.0.0.0:8009
    Oct 6, 2005 10:50:47 AM org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/31 config=null
    Oct 6, 2005 10:50:47 AM org.apache.catalina.storeconfig.StoreLoader load
    INFO: Find registry server-registry.xml at classpath resource
    Oct 6, 2005 10:50:47 AM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 12171 ms
    Oct 6, 2005 11:02:47 AM org.apache.catalina.startup.HostConfig checkResources
    INFO: Reloading context [/jpetstore]
    Oct 6, 2005 11:15:57 AM org.apache.catalina.core.StandardContext stop
    INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/jpetstore] has not been started
    Oct 6, 2005 11:15:59 AM org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization started
    Oct 6, 2005 11:15:59 AM org.springframework.beans.factory.xml.XmlBeanDefin itionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/dataAccessContext-local.xml]
    Oct 6, 2005 11:15:59 AM org.springframework.core.CollectionFactory <clinit>
    INFO: JDK 1.4+ collections available
    Oct 6, 2005 11:15:59 AM org.springframework.core.CollectionFactory <clinit>
    INFO: Commons Collections 3.x available
    Oct 6, 2005 11:15:59 AM org.springframework.beans.factory.xml.XmlBeanDefin itionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext-hibernate.xml]
    Oct 6, 2005 11:15:59 AM org.springframework.context.support.AbstractRefres hableApplicationContext refreshBeanFactory
    INFO: Bean factory for application context [Root WebApplicationContext]: org.springframework.beans.factory.support.DefaultL istableBeanFactory defining beans [propertyConfigurer,sessionFactory,transactionManag er,dataSource,accountDao,accountValidator,orderVal idator,petStore,store,petclinic:service=hibernateS tatistics,jmxExporter]; root of BeanFactory hie
    Oct 6, 2005 11:16:00 AM org.springframework.context.support.AbstractApplic ationContext refresh
    INFO: 11 beans defined in application context [Root WebApplicationContext]
    Oct 6, 2005 11:16:00 AM org.springframework.beans.factory.support.Abstract BeanFactory getBean
    INFO: Creating shared instance of singleton bean 'propertyConfigurer'
    Oct 6, 2005 11:16:00 AM org.springframework.core.io.support.PropertiesLoad erSupport loadProperties
    INFO: Loading properties file from ServletContext resource [/WEB-INF/jdbc.properties]
    Oct 6, 2005 11:16:00 AM org.springframework.context.support.AbstractApplic ationContext initMessageSource
    INFO: Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMess ageSource@979f67]
    Oct 6, 2005 11:16:00 AM org.springframework.context.support.AbstractApplic ationContext initApplicationEventMulticaster
    INFO: Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicatio nEventMulticaster@d12eea]
    Oct 6, 2005 11:16:00 AM org.springframework.ui.context.support.UiApplicati onContextUtils initThemeSource
    INFO: No ThemeSource found for [Root WebApplicationContext]: using ResourceBundleThemeSource
    Oct 6, 2005 11:16:00 AM org.springframework.beans.factory.support.DefaultL istableBeanFactory preInstantiateSingletons
    INFO: Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultL istableBeanFactory defining beans [propertyConfigurer,sessionFactory,transactionManag er,dataSource,accountDao,accountValidator,orderVal idator,petStore,store,petclinic:service=hibernateS tatistics,jmxExporter]; root of BeanFactory hierarchy]
    Oct 6, 2005 11:16:00 AM org.springframework.beans.factory.support.Abstract BeanFactory getBean
    INFO: Creating shared instance of singleton bean 'sessionFactory'
    Oct 6, 2005 11:16:00 AM org.springframework.beans.factory.support.Abstract BeanFactory destroySingletons
    INFO: Destroying singletons in factory {org.springframework.beans.factory.support.Default ListableBeanFactory defining beans [propertyConfigurer,sessionFactory,transactionManag er,dataSource,accountDao,accountValidator,orderVal idator,petStore,store,petclinic:service=hibernateS tatistics,jmxExporter]; root of BeanFactory hierarchy}
    Oct 6, 2005 11:16:00 AM org.springframework.web.context.ContextLoader initWebApplicationContext
    SEVERE: Context initialization failed
    org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/dataAccessContext-local.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.ja va:2365)
    at java.lang.Class.getDeclaredMethods(Class.java:1763 )
    at java.beans.Introspector$1.run(Introspector.java:12 59)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.beans.Introspector.getPublicDeclaredMethods(I ntrospector.java:1257)
    at java.beans.Introspector.getTargetMethodInfo(Intros pector.java:1125)
    at java.beans.Introspector.getBeanInfo(Introspector.j ava:383)
    at java.beans.Introspector.getBeanInfo(Introspector.j ava:155)
    at org.springframework.beans.CachedIntrospectionResul ts.<init>(CachedIntrospectionResults.java:140)
    at org.springframework.beans.CachedIntrospectionResul ts.forClass(CachedIntrospectionResults.java:82)
    at org.springframework.beans.BeanWrapperImpl.setIntro spectionClass(BeanWrapperImpl.java:370)
    at org.springframework.beans.BeanWrapperImpl.setWrapp edInstance(BeanWrapperImpl.java:328)
    at org.springframework.beans.BeanWrapperImpl.setWrapp edInstance(BeanWrapperImpl.java:310)
    at org.springframework.beans.BeanWrapperImpl.<init>(B eanWrapperImpl.java:192)
    at org.springframework.beans.factory.support.Abstract AutowireCapableBeanFactory.createBean(AbstractAuto wireCapableBeanFactory.java:327)
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:226)
    at org.springframework.beans.factory.support.Abstract BeanFactory.getBean(AbstractBeanFactory.java:147)
    at org.springframework.beans.factory.support.DefaultL istableBeanFactory.preInstantiateSingletons(Defaul tListableBeanFactory.java:270)
    at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:312)
    at org.springframework.web.context.support.AbstractRe freshableWebApplicationContext.refresh(AbstractRef reshableWebApplicationContext.java:134)
    at org.springframework.web.context.ContextLoader.crea teWebApplicationContext(ContextLoader.java:230)
    at org.springframework.web.context.ContextLoader.init WebApplicationContext(ContextLoader.java:156)
    at org.springframework.web.context.ContextLoaderListe ner.contextInitialized(ContextLoaderListener.java: 48)
    at org.apache.catalina.core.StandardContext.listenerS tart(StandardContext.java:3669)
    at org.apache.catalina.core.StandardContext.start(Sta ndardContext.java:4104)
    at org.apache.catalina.startup.HostConfig.checkResour ces(HostConfig.java:1069)
    at org.apache.catalina.startup.HostConfig.check(HostC onfig.java:1162)
    at org.apache.catalina.startup.HostConfig.lifecycleEv ent(HostConfig.java:293)
    at org.apache.catalina.util.LifecycleSupport.fireLife cycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.backgroundP rocess(ContainerBase.java:1304)
    at org.apache.catalina.core.ContainerBase$ContainerBa ckgroundProcessor.processChildren(ContainerBase.ja va:1568)
    at org.apache.catalina.core.ContainerBase$ContainerBa ckgroundProcessor.processChildren(ContainerBase.ja va:1577)
    at org.apache.catalina.core.ContainerBase$ContainerBa ckgroundProcessor.run(ContainerBase.java:1557)
    at java.lang.Thread.run(Thread.java:595)
    Oct 6, 2005 11:16:00 AM org.apache.catalina.core.StandardContext start
    SEVERE: Error listenerStart
    Oct 6, 2005 11:16:00 AM org.apache.catalina.core.StandardContext start
    SEVERE: Context [/jpetstore] startup failed due to previous errors


    Note
    I am getting error while creating bean with name 'sessionFactory'.


    Any help regarding the same would be highly appreciated.

  • #2
    Hibernate spring Integration

    Sorry it is integration of hibernate with spring

    Comment


    • #3
      java.lang.NoClassDefFoundError: javax/transaction/TransactionManager

      You are missing j2ee.jar on the classpath.

      Comment


      • #4
        Hibernate spring Integration

        Hi,

        The problem is solved.
        Following jars added in /WEB-INF/lib


        1)hibernate3.jar
        2)jta.jar
        3)jaxen-1.1-beta-4.jar
        4)ehcache-1.1.jar
        5)dom4j-1.6.jar

        Comment


        • #5
          hibernate with spring

          Hello,

          I am trying to add hibernate to my existing spring application.I am using spring 2.5,hibernate annotations 3.2, mysql and tomcat
          I have written applicationcontext.xml and hibernate.cfg.xml.
          But I am getting this error

          Context initialization failed.org.springframework.beans.factory.beandefin itionstoreexception: IOException parsing XML document from servletcontext resource [/web-inf/applicationcontext.xml]
          nested exception is java.io.FilenotfoudException: could not open servletcontext resource [/web-inf/applicationContext.xml]


          Below are the two config files

          applicationContext.xml
          ****************************

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

          <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverM anagerDataSource">
          <property name="driverClassName">
          <value>com.mysql.jdbc.Driver</value>
          </property>
          <property name="url">
          <value>jdbc:mysql://localhost:3306/bank</value>
          </property>
          <property name="username">
          <value>root</value>
          </property>
          <property name="password">
          <value>root</value>
          </property>
          </bean>

          <bean id="sessionFactory"
          class="org.springframework.orm.hibernate3.
          LocalSessionFactoryBean">
          <property name="dataSource">
          <ref bean="dataSource" />
          </property>
          <property name="configLocation">
          <value>WEB-INF\classes\hibernate.cfg.xml</value>
          </property>
          <property name="configurationClass">
          <value>org.hibernate.cfg.AnnotationConfiguration </value>
          </property>
          <property name="hibernateProperties">
          <props>
          <prop key="hibernate.dialect">
          org.hibernate.dialect.MySQLDialect
          </prop>
          <prop key="hibernate.hbm2ddl.auto">create</prop>
          </props>
          </property>
          </bean>
          <bean id="customerDAOimpl">
          <property name="sessionFactory">
          <ref bean="sessionFactory" />
          </property>
          </bean>

          <bean id="customerDAO" class="com.palnar.college.DAO.customerDAOHibernate Impl.java"
          <property name="sessionFactory"><ref local="sessionFactory"/></property>
          </bean>


          </beans>

          hibernate.cfg.xml
          ************************

          <hibernate-configuration>
          <session-factory>
          <mapping package="com.palnar.college.service" />
          <mapping class="com.palnar.college.service.Customer" />
          </session-factory>
          </hibernate-configuration>

          web.xml
          *************
          ......
          <listener>
          <listener-class>
          org.springframework.web.context.ContextLoaderListe ner
          </listener-class>
          </listener>

          ......

          PLEASE HELP ME OUT.THIS IS VERY URGENT

          Comment


          • #6
            Please don't open 3 threads regarding the same issue!!! Next to that use [ code][/code ] tags when posting code...

            Code:
            java.io.FilenotfoudException: could not open servletcontext resource [/web-inf/applicationContext.xml]
            The message is quite clear imho, there is no file named applicationContext in the WEB-INF directory. I guess you have it in WEB-INF/classes....

            Comment


            • #7
              Thanks for the advice.

              I am having applicationContext.xml in my web-inf folder.

              Comment


              • #8
                Well not according to your error message...

                Make SURE it is there. Do you have any definition in your web.xml or do you only have a ContextLoaderListener configured.

                Comment


                • #9
                  thanks ..
                  below is my web.xml...
                  Code:
                  <servlet>
                  		<servlet-name>College</servlet-name>
                  		<servlet-class>
                  			org.springframework.web.servlet.DispatcherServlet
                  		</servlet-class>
                  		<load-on-startup>1</load-on-startup>
                  	</servlet>
                  	<servlet-mapping>
                  		<servlet-name>College</servlet-name>
                  		<url-pattern>*.htm</url-pattern>
                  	</servlet-mapping>
                  
                  	<welcome-file-list>
                  		<welcome-file>index.jsp</welcome-file>
                  	</welcome-file-list>
                  
                  
                  	<jsp-config>
                  		<taglib>
                  			<taglib-uri>/spring</taglib-uri>
                  			<taglib-location>
                  				/WEB-INF/tld/spring-form.tld
                  			</taglib-location>
                  		</taglib>
                  	</jsp-config>
                     
                   	 <listener>
                  		<listener-class>
                  			org.springframework.web.context.ContextLoaderListener
                  		</listener-class>
                  	</listener>
                  	
                  </web-app>

                  Comment


                  • #10
                    This article may be helpful:
                    Hibernate and Spring Integration

                    Comment


                    • #11
                      Hibernate Spring Hjpetstore 1.0 and 2.0

                      For others are still searching the same thread.
                      The integration has been done several years ago, hjpetstore

                      Pprun

                      Comment


                      • #12
                        hi,

                        chk it out. i hope it can solve your problem.
                        http://www.vaannila.com/spring/sprin...gration-1.html

                        St Lucia luxury hotels
                        St Lucia family holiday

                        Comment

                        Working...
                        X