2012/8/29 Knute Snortum <ksnor...@catalystitservices.com>:
>
>
>> -----Original Message-----
>> From: Olivier Lamy [mailto:ol...@apache.org]
>> Sent: Tuesday, August 28, 2012 2:17 PM
>> To: Tomcat Users List
>> Subject: Re: tomcat7-maven-plugin doesn't understand Maven filtering of
>> context files?
>>
>> Hi,
>> Inline
>>
>> 2012/8/28 Knute Snortum <ksnor...@catalystitservices.com>:
>> > 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?.
>> >
>> as you are using gwt maven plugin, I'm not sure that works.
>> Something you can do is using sys properties in tomcat7/6-maven-plugin
>> (spring placeholder resolves against sys props too).
>> Add you sys props as it:
>> http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat6-maven-
>> plugin/examples/add-system-properties.html
>
> Well, I'm using Maven filtering, and the reason for that is my client 
> requires that I use Maven profiling to set the development and the production 
> environments.  So I'd have to a Maven Tomcat plugin in each profile -- which 
> maybe I'll do.
>
> I need the GWT plugin because this is a Vaadin project and Vaadin uses GWT.
>
>> > 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 >>>
>>
>> you are using an old version here ? Don't you have duplicate entries in
>> your pom ?
>
> There's no duplicate.  The one I have looks like this:
>
>         <plugin>
>                 <groupId>org.apache.tomcat.maven</groupId>
>                 <artifactId>tomcat7-maven-plugin</artifactId>
>                 <version>${tomcat7MavenPlugin}</version>
>                 ...
>
> And my properties look like:
>
>         <tomcat7MavenPlugin>2.0-beta-1</tomcat7MavenPlugin>
>
Ok but the logs doesn't says that :-)
What cli are you using ?
BTW do you have any sample project to reproduce your issue ?
>>
>> > [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.SecurityContextPersistenceFi
>> > lter]; 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.UsernamePasswordAuthe
>> > nticationFilter#0>, order = 800, Root bean: class
>> > [org.springframework.security.web.authentication.www.BasicAuthenticati
>> > onFilter]; 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.SecurityContextHolderAwar
>> > eRequestFilter]; 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.AnonymousAuthenticati
>> > onFilter]; 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.FilterSecurityInter
>> > ceptor#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@3
>> > 78c3efb: defining beans
>> > [org.springframework.context.support.PropertySourcesPlaceholderConfigu
>> > rer#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
>> >
>>
>>
>>
>> --
>> Olivier Lamy
>> Talend: http://coders.talend.com
>> http://twitter.com/olamy | http://linkedin.com/in/olamy
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>



-- 
Olivier Lamy
Talend: http://coders.talend.com
http://twitter.com/olamy | http://linkedin.com/in/olamy

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

Reply via email to