dimanche 22 février 2015

how to import contexts file in dispatcher servlet.xml

I have created a maven multi-module project, they are MVCLayer, ServiceLayer and DAOLayer.


In DAOLayer I have applicationContext.xml under src/main/resources which looks like below



<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://ift.tt/GArMu6"
xmlns:context="http://ift.tt/GArMu7"
xmlns:xsi="http://ift.tt/ra1lAU"
xmlns:tx="http://ift.tt/OGfeU2"
xmlns:p="http://ift.tt/1jdM0fE"
xsi:schemaLocation="http://ift.tt/GArMu6
http://ift.tt/1jdM0fG
http://ift.tt/GArMu7
http://ift.tt/1jdLYo7
http://ift.tt/OGfeU2
http://ift.tt/18tm2Tg">

<context:annotation-config />
<context:component-scan base-package="com.sharique" />
<tx:annotation-driven />
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/DB.properties</value>
</property>
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${JDBC.DRIVERCLASSNAME}" />
<property name="url" value="${JDBC.URL}" />
<property name="username" value="${USERNAME}" />
<property name="password" value="${PASSWORD}" />
<!-- <property name="initialSize" value="2" /> <property name="maxActive"
value="5" /> -->
</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.sharique.domainObjects" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${HIBERNATE.DAILECT}</prop>
<prop key="hibernate.hbm2ddl.auto">${HBM2DDL.AUTO.UPDATE}</prop>
<prop key="hibernate.show_sql">${HIBERNATE.SHOW_SQL}</prop>
</props>
</property>
</bean>

<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory"></bean>
</beans>


In ServiceLayer, serviceContext.xml is under src/main/resources which looks like below



<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://ift.tt/GArMu6"
xmlns:context="http://ift.tt/GArMu7"
xmlns:xsi="http://ift.tt/ra1lAU"
xmlns:tx="http://ift.tt/OGfeU2"
xmlns:p="http://ift.tt/1jdM0fE"
xsi:schemaLocation="http://ift.tt/GArMu6
http://ift.tt/1jdM0fG
http://ift.tt/GArMu7
http://ift.tt/1jdLYo7
http://ift.tt/OGfeU2
http://ift.tt/18tm2Tg">

<context:annotation-config />
<context:component-scan base-package="com.sharique" />
<tx:annotation-driven />
<import resource="classpath*:/applicationContext.xml"/>
<!-- <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>DB.properties</value>
</property>
</bean> -->

<!-- <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${JDBC.DRIVERCLASSNAME}" />
<property name="url" value="${JDBC.URL}" />
<property name="username" value="${USERNAME}" />
<property name="password" value="${PASSWORD}" />
<property name="initialSize" value="2" /> <property name="maxActive"
value="5" />
</bean> -->

<!-- <bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.sharique.domainObjects" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${HIBERNATE.DAILECT}</prop>
<prop key="hibernate.hbm2ddl.auto">${HBM2DDL.AUTO.UPDATE}</prop>
<prop key="hibernate.show_sql">${HIBERNATE.SHOW_SQL}</prop>
</props>
</property>
</bean> -->

<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory"></bean>
</beans>


And in MVCLayer, MVC-Dispatcher-servlet.xml under WEB-INF is like below



<beans xmlns="http://ift.tt/GArMu6"
xmlns:context="http://ift.tt/GArMu7"
xmlns:mvc="http://ift.tt/1bHqwjR" xmlns:xsi="http://ift.tt/ra1lAU"
xsi:schemaLocation="
http://ift.tt/GArMu6
http://ift.tt/1jdM0fG
http://ift.tt/GArMu7
http://ift.tt/1jdLYo7
http://ift.tt/1bHqwjR
http://ift.tt/1fmimld">

<context:component-scan base-package="com.sharique.controller" />
<mvc:annotation-driven />
<import resource="classpath*:/serviceContext.xml"/>



<bean id="ViewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.JstlView</value>
</property>
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>


Sp after all these configuration when I am running the project MVCLayer in tomcat from eclipse I am getting this error.



SEVERE: Allocate exception for servlet MVC-Dispatcher java.io.FileNotFoundException: Could not open ServletContext resource [/DB.properties] at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141) at org.springframework.core.io.support.EncodedResource.getInputStream(EncodedResource.java:143) at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:98) at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:175) at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:156) at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:80) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:265) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:162) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462) at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) at javax.servlet.GenericServlet.init(GenericServlet.java:160) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1189) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1103) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:813) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)



When I am doing a crud operation from ServiceLayer by creating main class its working fine but whenever am running MVCLayer, am getting this error So please help me out on how to configure it


And MVCLayer pom.xml is like below



<?xml version="1.0"?>
<project
xsi:schemaLocation="http://ift.tt/IH78KX http://ift.tt/VE5zRx"
xmlns="http://ift.tt/IH78KX" xmlns:xsi="http://ift.tt/ra1lAU">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.test</groupId>
<artifactId>Roomies</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>MVCLayer</artifactId>

<packaging>war</packaging>
<name>MVCLayer Maven Webapp</name>
<url>http://ift.tt/19pvvEY;
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp.jstl</artifactId>
<version>1.2.1</version>
<exclusions>
<!-- jstl-api was adding selvlet-api 2.5 and jsp-api -->
<exclusion>
<artifactId>jstl-api</artifactId>
<groupId>javax.servlet.jsp.jstl</groupId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>com.test</groupId>
<artifactId>ServiceLayer</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

</dependencies>
<build>
<finalName>MVCLayer</finalName>
</build>
</project>

Aucun commentaire:

Enregistrer un commentaire