java - Spring ContextLoaderListener ignores tag -
i dont know if im missing ive read documentation , asked lot cant figure why app behaving way. web application keeps complaining java.io.filenotfoundexception: not open servletcontext resource [/web-inf/applicationcontext.xml]
during start up.
this happens if web.xml
file contents tags
<context-param> <param-name>contextconfiglocation</param-name> <param-value>some/nonexisting/path.xml</param-value> </context-param>
heres complete web.xml
<?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>j2ee application example</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextappconfiglocation</param-name> <param-value>/subfolder/applicationcontext.xml</param-value> </context-param> <context-param> <param-name>javax.faces.default_suffix</param-name> <param-value>.xhtml</param-value> </context-param> <context-param> <param-name>facelets.development</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.facelets_refresh_period</param-name> <param-value>1</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <servlet> <servlet-name>resources servlet</servlet-name> <servlet-class>org.springframework.js.resource.resourceservlet</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>resources servlet</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>spring mvc dispatcher servlet</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value></param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring mvc dispatcher servlet</servlet-name> <url-pattern>/app/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>faces servlet</servlet-name> <servlet-class>javax.faces.webapp.facesservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>faces servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <filter> <filter-name>charencodingfilter</filter-name> <filter-class>org.springframework.web.filter.characterencodingfilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>forceencoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>charencodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- spring security filters --> </web-app>
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/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>com.example.j2eeapplication</groupid> <artifactid>j2eeapplication</artifactid> <version>0.0.1-snapshot</version> <packaging>war</packaging> <name>j2ee application example</name> <repositories> <repository> <id>prime-repo</id> <name>primefaces maven repository</name> <url>http://repository.primefaces.org</url> </repository> </repositories> <dependencies> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-core</artifactid> <version>4.1.8.final</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator</artifactid> <version>4.2.0.final</version> </dependency> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.8.2</version> <scope>test</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring</artifactid> <version>2.5.6</version> </dependency> <dependency> <groupid>org.springframework.webflow</groupid> <artifactid>spring-webflow</artifactid> <version>2.3.1.release</version> </dependency> <dependency> <groupid>org.springframework.webflow</groupid> <artifactid>spring-faces</artifactid> <version>2.3.1.release</version> </dependency> <dependency> <groupid>com.oracle</groupid> <artifactid>ojdbc14</artifactid> <version>10.2.0.1.0</version> </dependency> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> <version>1.2.16</version> </dependency> <dependency> <groupid>com.sun.faces</groupid> <artifactid>jsf-impl</artifactid> <version>2.1.10</version> </dependency> <dependency> <groupid>com.sun.facelets</groupid> <artifactid>jsf-facelets</artifactid> <version>1.1.14</version> </dependency> <dependency> <groupid>com.sun.faces</groupid> <artifactid>jsf-api</artifactid> <version>2.1.10</version> </dependency> <dependency> <groupid>commons-dbcp</groupid> <artifactid>commons-dbcp</artifactid> <version>20030825.184428</version> </dependency> <dependency> <groupid>org.slf4j</groupid> <artifactid>slf4j-log4j12</artifactid> <version>1.6.4</version> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>javax.servlet-api</artifactid> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-tx</artifactid> <version>3.0.5.release</version> </dependency> <dependency> <groupid>xml-apis</groupid> <artifactid>xml-apis</artifactid> <version>1.3.02</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-web</artifactid> <version>3.1.3.release</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-config</artifactid> <version>3.1.3.release</version> </dependency> <dependency> <groupid>org.primefaces</groupid> <artifactid>primefaces</artifactid> <version>3.4</version> </dependency> <dependency> <groupid>cglib</groupid> <artifactid>cglib</artifactid> <version>2.2.2</version> <scope>runtime</scope> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-entitymanager</artifactid> <version>4.1.8.final</version> </dependency> </dependencies> </project>
applicationcontext.xml
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <import resource="datasource-config.xml" /> <import resource="webflow-config.xml" /> </beans>
i have problem loading applicationcontext.xml
file , may key solve it. why no matter contextloaderlistener loads xml file default path ?
try add web.xml
check order of declaration
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>appname</display-name> <context-param> <param-name>contextconfiglocation</param-name> <param-value>classpath:applicationcontext*.xml</param-value> </context-param> //... </web-app>
instead of <context-param>
tag
and put applicationcontext.xml
src->java->resources
should help.
be sure have dispatcherservletcontext.xml
in web-inf
same directory have web.xml
.
dispatcherservletcontext.xml:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <context:component-scan base-package="yourpackage"/> <bean class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="prefix"> <value>/web-inf/${pagespath}</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans>
properly configure pom
<?xml version="1.0" encoding="utf-8"?> <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/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>groupid</groupid> <artifactid>artifactname</artifactid> <version>1.0-snapshot</version> <packaging>war</packaging> <name>name</name> <properties> <cxf.version>2.7.10</cxf.version> <spring.version>4.0.2.release</spring.version> <junit.version>4.11</junit.version> <hibernate.version>4.3.0.final</hibernate.version> </properties> <build> <finalname>rondoserver</finalname> <plugins> <plugin> <artifactid>maven-compiler-plugin</artifactid> <configuration> <source>1.7</source> <target>1.7</target> <encoding>utf-8</encoding> </configuration> </plugin> <plugin> <artifactid>maven-war-plugin</artifactid> <version>2.1</version> <configuration> <webxml>{path_to_webxml}/web-inf/web.xml</webxml> <warname>app_name</warname> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-resources-plugin</artifactid> <version>2.6</version> <configuration> <encoding>utf-8</encoding> </configuration> </plugin> </plugins> <testresources> <testresource> <directory>src/test/resources/</directory> <filtering>true</filtering> </testresource> </testresources> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> <dependencies> <dependency> <groupid>org.apache.cxf</groupid> <artifactid>cxf-rt-frontend-jaxws</artifactid> <version>${cxf.version}</version> </dependency> <dependency> <groupid>org.apache.cxf</groupid> <artifactid>cxf-rt-transports-http</artifactid> <version>${cxf.version}</version> </dependency> <!-- spring 4 dependencies --> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>${spring.version}</version> </dependency> //...other spring dependency on same lvl </dependencies> </project>
Comments
Post a Comment