cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Gentry <mgen...@masslight.net>
Subject Re: How to use JNDI in development
Date Sun, 27 Apr 2014 00:06:51 GMT
Hi Tim,

Yes, live class reloading (within the Tapestry realm --
pages/components/services) works for me.  Make sure you are running
your application in development mode instead of production mode.
 (Production mode is the default.)

If you look at the POM I shared with you, you'll see I have:

                        <systemProperty>
                            <name>tapestry.production-mode</name>
                            <value>false</value>
                        </systemProperty>

This overrides the default when you run the application via Maven.

mrg



On Sat, Apr 26, 2014 at 4:54 PM, D Tim Cummings <tim@triptera.com.au> wrote:

> Hi Michael
>
> Problem was a wrong case on the s in DataSource in my web.xml file
>
> I had
>
>  <resource-ref>
>  <resource-ref-name>jdbc/db_tims</resource-ref-name>
>  <res-type>javax.sql.Datasource</res-type>
>  <res-auth>Container</res-auth>
>  </resource-ref>
>
> But I should have had
>
>  <resource-ref>
>  <resource-ref-name>jdbc/db_tims</resource-ref-name>
>  <res-type>javax.sql.DataSource</res-type>
>  <res-auth>Container</res-auth>
>  </resource-ref>
>
> So mvn jetty:run is working now for me. It just doesn't do live class
> reloading in Tapestry project. Does live class reloading work for you?
>
> Tim
>
> On 26 Apr 2014, at 22:19, Michael Gentry <mgentry@masslight.net> wrote:
>
> Hi Tim,
>
> Given the exception:
>
> Caused by:
> java.lang.ClassNotFoundException: javax.sql.Datasource
>
> I'm going to guess you perhaps forgot to include this dependency in the
> POM?
>
>        <dependency>
>            <!-- Used by jetty:run to define JDNI data source -->
>            <groupId>commons-dbcp</groupId>
>            <artifactId>commons-dbcp</artifactId>
>            <version>1.4</version>
>            <scope>runtime</scope>
>        </dependency>
>
> mrg
>
>
> On Fri, Apr 25, 2014 at 6:39 PM, D Tim Cummings <tim@triptera.com.au>
> wrote:
>
> Thanks Michael.
>
> This is very handy. I downloaded cbe and was able to get it running
> talking to a mysql database by changing the jndi config. Now I am trying to
> retrofit config to my app and I get the following error when I do mvn
> jetty:run. I have all the same dependencies and plugins (plus a few more)
> although some of my versions are more recent.
>
> [INFO] Scanning for projects...
> [INFO]
>
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building Tims App 0.0.8
> [INFO]
> ------------------------------------------------------------------------
> [INFO]
> [INFO] >>> jetty-maven-plugin:7.5.1.v20110908:run (default-cli) @ tims-app
>
>
> [INFO]
> [INFO] --- maven-cayenne-plugin:3.2M1:cgen (default-cli) @ tims-app ---
> [INFO]
> [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @
> tims-app ---
> [WARNING] File encoding has not been set, using platform encoding UTF-8,
> i.e. build is platform dependent!
> [WARNING] Using platform encoding (UTF-8 actually) to copy filtered
> resources, i.e. build is platform dependent!
> [INFO] Copying 33 resources
> [INFO]
> [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tims-app
> ---
> [INFO] Nothing to compile - all classes are up to date
> [INFO]
> [INFO] --- maven-resources-plugin:2.6:testResources
> (default-testResources) @ tims-app ---
> [WARNING] Using platform encoding (UTF-8 actually) to copy filtered
> resources, i.e. build is platform dependent!
> [INFO] skip non existing resourceDirectory
> /Users/tim/github/tims-app/tims-app/src/test/resources
> [INFO]
> [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @
> tims-app ---
> [INFO] Nothing to compile - all classes are up to date
> [INFO]
> [INFO] <<< jetty-maven-plugin:7.5.1.v20110908:run (default-cli) @ tims-app
> <<<
> [INFO]
> [INFO] --- jetty-maven-plugin:7.5.1.v20110908:run (default-cli) @ tims-app
> ---
> [INFO] Configuring Jetty for project: Tramanco Vehicle Weigh
> [INFO] Webapp source directory =
> /Users/tim/github/tims-app/tims-app/src/main/webapp
> [INFO] Reload Mechanic: automatic
> [INFO] Classes =
> /Users/tim/github/tims-app/tims-app/target/tims-app/WEB-INF/classes
> [INFO] Added extra scan
> target:/Users/tim/github/tims-app/tims-app/src/main/resources
> [INFO] Context path = /tims-app
> [INFO] Tmp directory = /Users/tim/github/tims-app/tims-app/target/tmp
> [INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
> [INFO] Web overrides =  none
> [INFO] web.xml file =
> file:/Users/tim/github/tims-app/tims-app/src/main/webapp/WEB-INF/web.xml
> [INFO] Webapp directory = /Users/tim/github/tims-app//src/main/webapp
> [INFO] Starting jetty 7.5.1.v20110908 ...
> 2014-04-26 08:28:40.142:INFO:oejs.Server:jetty-7.5.1.v20110908
> 2014-04-26 08:28:41.030:INFO:oejpw.PlusConfiguration:No Transaction
> manager found - if your webapp requires one, please configure one.
> 2014-04-26 08:28:41.068:WARN:oejw.WebAppContext:Failed startup of context
>
> o.m.j.p.JettyWebAppContext{/tims-app,file:/Users/tim/github/tims-app/tims-app/src/main/webapp/},file:/Users/tim/github/tims-app/tims-app/src/main/webapp/
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
>
> org.eclipse.jetty.webapp.IterativeDescriptorProcessor.visit(IterativeDescriptorProcessor.java:80)
> at
>
> org.eclipse.jetty.webapp.IterativeDescriptorProcessor.process(IterativeDescriptorProcessor.java:67)
> at org.eclipse.jetty.webapp.MetaData.resolve(MetaData.java:321)
> at
>
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1211)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:589)
> at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)
> at
>
> org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:219)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
> at
>
> org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
> at
>
> org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:167)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
> at
>
> org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
> at
>
> org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89)
> at org.eclipse.jetty.server.Server.doStart(Server.java:261)
> at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:67)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
> at
>
> org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:333)
> at
>
> org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:273)
> at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:548)
> at
>
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
> at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> at
>
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
> at
>
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
> at
>
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
> at
>
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
> at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
>
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> at
>
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> Caused by:
> java.lang.ClassNotFoundException: javax.sql.Datasource
> at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> at
>
> org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:415)
> at
>
> org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:377)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.loadClass(ContextHandler.java:1323)
> at
>
> org.eclipse.jetty.plus.webapp.PlusDescriptorProcessor.visitResourceRef(PlusDescriptorProcessor.java:245)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
>
> org.eclipse.jetty.webapp.IterativeDescriptorProcessor.visit(IterativeDescriptorProcessor.java:80)
> at
>
> org.eclipse.jetty.webapp.IterativeDescriptorProcessor.process(IterativeDescriptorProcessor.java:67)
> at org.eclipse.jetty.webapp.MetaData.resolve(MetaData.java:321)
> at
>
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1211)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:589)
> at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)
> at
>
> org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:219)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
> at
>
> org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
> at
>
> org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:167)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
> at
>
> org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
> at
>
> org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89)
> at org.eclipse.jetty.server.Server.doStart(Server.java:261)
> at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:67)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
> at
>
> org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:333)
> at
>
> org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:273)
> at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:548)
> at
>
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
> at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> at
>
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> at
>
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
> at
>
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
> at
>
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
> at
>
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
> at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
>
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> at
>
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> 2014-04-26 08:28:41.087:INFO:oejs.AbstractConnector:Started
> SelectChannelConnector@0.0.0.0:8088 STARTING
> [INFO] Started Jetty Server
>
>
> On 25 Apr 2014, at 23:43, Michael Gentry <mgentry@masslight.net> wrote:
>
> Here is a pom.xml which includes the Jetty plugin:
>
> https://github.com/mrg/cbe/blob/master/WebApplications/pom.xml
>
> And a jetty-env.xml which defines the JNDI lookup:
>
>
>
> https://github.com/mrg/cbe/blob/master/WebApplications/src/main/webapp/WEB-INF/jetty-env.xml
>
>
> mrg
>
>
>
> On Fri, Apr 25, 2014 at 9:40 AM, Michael Gentry <mgentry@masslight.net
>
> wrote:
>
>
> Hi Tim,
>
> RunJettyRun uses plain Jetty and not Jetty+ (which includes the JNDI
> extension).  What I do in my development is use the Jetty Maven plugin and
> then just use Maven to run Jetty.  Has worked pretty well so far for me.
>
>
> On Thu, Apr 24, 2014 at 9:38 PM, D Tim Cummings <tim@triptera.com.au
>
> wrote:
>
>
> Hi
>
> I am using cayenne in a tapestry project and my final deployment will be
> in Tomcat 7 using JNDI for defining the data source. I am developing in
> Eclipse 4.3.1 and would like my development environment to be as close to
> deployment as possible. What is the recommended way of using JNDI in
> development.
>
> I have tried the instructions on
>
> http://tynamo.org/Developing+with+Tomcat+and+Eclipse
>
> using sysdeo tomcat plugin for eclipse. I haven't been able to get it to
> read the jndi information.
>
> Apr 25, 2014 11:25:40 AM org.apache.catalina.deploy.NamingResources
> addResource
> WARNING: Failed to create MBean for naming resource [null]
>
> I have tried using RunJettyRun but get.
>
> Exception happened when loading Jetty.xml:
> java.lang.ClassNotFoundException: org.eclipse.jetty.plus.jndi.Resource
>
>
> RunJettyRun works great when I configure cayenne-project.xml to
> XMLPoolingDataSourceFactory but I don't want to have to keep switching
> between this and JNDI when ready to deploy. I would also prefer to use
> tomcat in dev so it is same as prod.
>
> JNDI works great when I build a war file and deploy to tomcat but that
> would slow my development if I had to do that every time.
>
> I don't necessarily have to solve these problems if you can recommend an
> alternative way of keeping database config separate to the war. The war
> will be deployed by unskilled users on Windows and skilled users on Linux
> and Mac so I am trying to keep the steps to deploy simple and not hard code
> absolute paths of properties files into my app.
>
> Thanks
>
> Tim
>
>
>
>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message