If this is the wrong mailing list for tomcat7-maven-plugin, could someone 
direct me to the right place?

I'm developing a Vaadin web app in Eclipse Juno on Windows 7 and I'm using the 
tomcat7-maven-plugin 2.0-beta-1 to help in development by running the app in 
Tomcat inside of the IDE -- or I'm trying.  The error I'm getting is: 

org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean 
definition with name 'dataSource' defined in ServletContext resource 
[/WEB-INF/applicationContext.xml]: Could not resolve placeholder 
'db.driverClassName' in string value [${db.driverClassName}]

"applicationContext.xml" is my Spring context file.  I have placeholders in it 
to point to the correct database based on Maven profiles and filtering.  So a 
piece of applicationContext.xml looks like this:

        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
destroy-method="close">
                <property name="driverClassName" value="${db.driverClassName}" 
/>
                <property name="url"             value="${db.url}" />
                <property name="username"        value="${db.username}" />
                <property name="password"        value="${db.password}" />
                <property name="maxActive"       value="10" />
                <property name="maxIdle"         value="1" />
        </bean>

As you can see, Tomcat (or Spring?) is finding the dataSource bean that does 
not have the placeholders replaced yet.

The odd thing is that in the war file and the directory under target that the 
war file is created from, all the place holders have been correctly 
substituted.  I can see them in an editor.  The context file with the 
placeholders is the one still sitting in my development folder.

So my question is, why isn't the Tomcat plugin seeing the context file in the 
war file or folder?  And if it looks in the development folder for the file, 
can Maven filtering work with the plugin?.

Below is part of the messages created by Maven et al in my IDE console.  I've 
left out the clean and testing messages and most of the stacktrace, which I 
think is from Spring anyway:

[INFO] 
[INFO] --- gwt-maven-plugin:2.4.0:compile (default) @ dpt ---
[INFO] auto discovered modules 
[com.catalystitservices.nike.dpt.widgetset.DptWidgetset]
[INFO] com.catalystitservices.nike.dpt.widgetset.DptWidgetset is up to date. 
GWT compilation skipped
[INFO] 
[INFO] --- maven-war-plugin:2.2:war (default-war) @ dpt ---
[INFO] Packaging webapp
[INFO] Assembling webapp [dpt] in [C:\Projects\DPT\target\dpt]
[INFO] Processing war project
[INFO] Copying webapp webResources [C:\Projects\DPT\src/main/webapp/] to 
[C:\Projects\DPT\target\dpt]
[INFO] Copying webapp resources [C:\Projects\DPT\src\main\webapp]
[INFO] Webapp assembled in [1442 msecs]
[INFO] Building war: C:\Projects\DPT\target\dpt.war
[INFO] 
[INFO] --- tomcat7-maven-plugin:2.0-beta-1:exec-war-only (tomcat-run) @ dpt ---
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ dpt ---
[INFO] Installing C:\Projects\DPT\target\dpt.war to 
C:\Users\ksnortum\.m2\repository\com\nike\dpt\dpt\1.1-SNAPSHOT\dpt-1.1-SNAPSHOT.war
[INFO] Installing C:\Projects\DPT\pom.xml to 
C:\Users\ksnortum\.m2\repository\com\nike\dpt\dpt\1.1-SNAPSHOT\dpt-1.1-SNAPSHOT.pom
[INFO] Installing C:\Projects\DPT\target\dpt-1.1-SNAPSHOT-war-exec.jar to 
C:\Users\ksnortum\.m2\repository\com\nike\dpt\dpt\1.1-SNAPSHOT\dpt-1.1-SNAPSHOT-exec-war.jar
[INFO] 
[INFO] >>> tomcat-maven-plugin:1.1:run (default-cli) @ dpt >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ dpt ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] Copying 3 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ dpt ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] <<< tomcat-maven-plugin:1.1:run (default-cli) @ dpt <<<
[INFO] 
[INFO] --- tomcat-maven-plugin:1.1:run (default-cli) @ dpt ---
[INFO] Running war on http://localhost:8080/dpt
[INFO] Creating Tomcat server configuration at C:\Projects\DPT\target\tomcat
Aug 28, 2012 10:13:59 AM org.apache.catalina.startup.Embedded start
INFO: Starting tomcat server
Aug 28, 2012 10:14:00 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.29
Aug 28, 2012 10:14:00 AM org.apache.catalina.core.ApplicationContext log
INFO: Set web app root system property: 'webapp.root' = 
[C:\Projects\DPT\src\main\webapp\]
Aug 28, 2012 10:14:00 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing log4j from [classpath:log4j.properties]
Aug 28, 2012 10:14:00 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
28.08.2012 10:14:00 INFO  (ContextLoader.java:272) - Root 
WebApplicationContext: initialization started
28.08.2012 10:14:00 INFO  (AbstractApplicationContext.java:500) - Refreshing 
Root WebApplicationContext: startup date [Tue Aug 28 10:14:00 PDT 2012]; root 
of context hierarchy
28.08.2012 10:14:00 INFO  (XmlBeanDefinitionReader.java:315) - Loading XML bean 
definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
28.08.2012 10:14:01 INFO  (XmlBeanDefinitionReader.java:315) - Loading XML bean 
definitions from ServletContext resource 
[/WEB-INF/applicationContext-security.xml]
28.08.2012 10:14:01 INFO  (SpringSecurityCoreVersion.java:33) - You are running 
with Spring Security Core 3.1.0.RELEASE
28.08.2012 10:14:01 INFO  (SecurityNamespaceHandler.java:57) - Spring Security 
'config' module version is 3.1.0.RELEASE
28.08.2012 10:14:01 INFO  (HttpSecurityBeanDefinitionParser.java:229) - 
Checking sorted filter chain: [Root bean: class 
[org.springframework.security.web.context.SecurityContextPersistenceFilter]; 
scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=null; 
factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 
300, Root bean: class 
[org.springframework.security.web.authentication.logout.LogoutFilter]; scope=; 
abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=null; 
factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 
400, 
<org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0>,
 order = 800, Root bean: class 
[org.springframework.security.web.authentication.www.BasicAuthenticationFilter];
 scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=null; 
factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 
1200, Root bean: class 
[org.springframework.security.web.savedrequest.RequestCacheAwareFilter]; 
scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=null; 
factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 
1300, Root bean: class 
[org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter];
 scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=null; 
factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 
1400, Root bean: class 
[org.springframework.security.web.authentication.AnonymousAuthenticationFilter];
 scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=null; 
factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 
1700, Root bean: class 
[org.springframework.security.web.session.SessionManagementFilter]; scope=; 
abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=null; 
factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 
1800, Root bean: class 
[org.springframework.security.web.access.ExceptionTranslationFilter]; scope=; 
abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=null; 
factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 
1900, 
<org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0>,
 order = 2000]
28.08.2012 10:14:01 INFO  (PropertiesLoaderSupport.java:177) - Loading 
properties file from file [C:\Projects\DPT\target\classes\log4j.properties]
28.08.2012 10:14:01 INFO  (DefaultSingletonBeanRegistry.java:433) - Destroying 
singletons in 
org.springframework.beans.factory.support.DefaultListableBeanFactory@378c3efb: 
defining beans 
[org.springframework.context.support.PropertySourcesPlaceholderConfigurer#0,<long
 list of beans removed>]; root of factory hierarchy
28.08.2012 10:14:01 ERROR (ContextLoader.java:307) - Context initialization 
failed
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean 
definition with name 'dataSource' defined in ServletContext resource 
[/WEB-INF/applicationContext.xml]: Could not resolve placeholder 
'db.driverClassName' in string value [${db.driverClassName}]

--- 
Knute Snortum
Developer
Catalyst IT Services


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to