best would be for you to share a sample with this issue on github. Basically we have ATM one working sample on github vs one mail thread with errors so hard to help being accurate :s.
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber <http://www.tomitribe.com> | JavaEE Factory <https://javaeefactory-rmannibucau.rhcloud.com> 2016-08-03 19:59 GMT+02:00 KARR, DAVID <[email protected]>: > > -----Original Message----- > > From: Romain Manni-Bucau [mailto:[email protected]] > > Sent: Wednesday, August 03, 2016 10:25 AM > > To: [email protected] > > Subject: Re: Define datasource, reference JDBC driver, and see init in > > console > > > > 2016-08-03 18:41 GMT+02:00 KARR, DAVID <[email protected]>: > > > > > > -----Original Message----- > > > > From: Romain Manni-Bucau [mailto:[email protected]] > > > > Sent: Tuesday, August 02, 2016 11:53 PM > > > > To: [email protected] > > > > Subject: Re: Define datasource, reference JDBC driver, and see init > > > > in console > > > > > > > > > > - using jdbc/sus2 you can use @Resource(name = "jdbc/sus2") > > > > DataSource ds; or do a lookup on openejb:Resource/jdbc/sus2 or > > > > java:openejb/Resource/ > > > > jdbc/sus2 > > > > > > This is my core problem, which I have to solve. This is a VFAQ about > > > JNDI, in my view. It's easy to define a name for something, but all > > > JNDI systems put "magic prefixes" on all the entities that go into the > > > JNDI registry, that make it difficult for users to figure out what the > > > actual names are. > > > > > > > > you can use id="global/foo/bar" to get java:global/foo/bar jndi name if > > it helps. > > Just for kicks, I just tried using exactly that name, and I changed my > resource definition to more closely match what you described earlier. It's > still failing to find the datasource, but I'm now getting different errors. > > Here's my Resource: > -------------- > <Resource id="global/foo/bar" type="DataSource" > classpath="mvn:oracle:ojdbc6:11.2.0.3"> > JdbcDriver = oracle.jdbc.driver.OracleDriver > MaxActive = 5 > MinIdle = 2 > MaxIdle = 2 > MaxWait = 10000 > JdbcUrl = jdbc:oracle:thin:@b2csusdblh1.bodc.att.com:1521:sus2 > UserName = dk068x > Password = Futility00 > </Resource> > --------------- > > My Spring context excerpt: > ---------------- > <jee:jndi-lookup jndi-name="java:global/foo/bar" id="sus2ds"/> > ---------------- > > My (truncated) Tomcat console output: > ---------------- > INFO: Configuring Service(id=global/foo/bar, type=Resource, > provider-id=Default JDBC Database) > ... > INFO: Creating Resource(id=global/foo/bar) > Aug 03, 2016 10:49:41 AM org.apache.tomcat.jdbc.pool.ConnectionPool > checkPoolConfiguration > WARNING: initialSize is larger than maxActive, setting initialSize to: 5 > Aug 03, 2016 10:49:42 AM org.apache.tomcat.jdbc.pool.ConnectionPool init > SEVERE: Unable to create initial connections of pool. > org.apache.tomcat.jdbc.pool.PoolExhaustedException: [main] NoWait: Pool > empty. Unable to fetch a connection, none available[5 in use]. > at > org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:679) > at > org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:468) > at > org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:143) > at > org.apache.tomee.jdbc.TomEEDataSourceCreator$TomEEConnectionPool.<init>(TomEEDataSourceCreator.java:221) > ... > > Aug 03, 2016 10:49:42 AM > org.apache.tomee.jdbc.TomEEDataSourceCreator$TomEEDataSource <init> > SEVERE: Can't create DataSource > org.apache.tomcat.jdbc.pool.PoolExhaustedException: [main] NoWait: Pool > empty. Unable to fetch a connection, none available[5 in use]. > at > org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:679) > at > org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:468) > at > org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:143) > at > org.apache.tomee.jdbc.TomEEDataSourceCreator$TomEEConnectionPool.<init>(TomEEDataSourceCreator.java:221) > at > org.apache.tomee.jdbc.TomEEDataSourceCreator$TomEEDataSource.createPool(TomEEDataSourceCreator.java:154) > ... > > ... > 2016-08-03 10:49:44,918 WARN [localhost-startStop-1] > support.AbstractApplicationContext (AbstractApplicationContext.java:549) - > Exception encountered during context initialization - cancelling refresh > attempt: org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'sus2ds': Invocation of init method failed; nested > exception is javax.naming.NameNotFoundException: Name "foo/bar" not found. > 2016-08-03 10:49:44,922 ERROR [localhost-startStop-1] > context.ContextLoader (ContextLoader.java:351) - Context initialization > failed > org.springframework.beans.factory.BeanCreationException: Error creating > bean with name 'sus2ds': Invocation of init method failed; nested exception > is javax.naming.NameNotFoundException: Name "foo/bar" not found. > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) > ... > Caused by: javax.naming.NameNotFoundException: Name "foo/bar" not found. > at > org.apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java:199) > at > org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:151) > at > org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:291) > at org.apache.naming.NamingContext.lookup(NamingContext.java:828) > at org.apache.naming.NamingContext.lookup(NamingContext.java:174) > at > org.apache.naming.SelectorContext.lookup(SelectorContext.java:163) > at javax.naming.InitialContext.lookup(Unknown Source) > at > org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:155) > ... > Aug 03, 2016 10:49:44 AM org.apache.catalina.core.StandardContext > listenerStart > SEVERE: Exception sending context initialized event to listener instance > of class org.springframework.web.context.ContextLoaderListener > org.springframework.beans.factory.BeanCreationException: Error creating > bean with name 'sus2ds': Invocation of init method failed; nested exception > is javax.naming.NameNotFoundException: Name "foo/bar" not found. > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) > ... > Caused by: javax.naming.NameNotFoundException: Name "foo/bar" not found. > at > org.apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java:199) > at > org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:151) > at > org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:291) > at org.apache.naming.NamingContext.lookup(NamingContext.java:828) > at org.apache.naming.NamingContext.lookup(NamingContext.java:174) > at > org.apache.naming.SelectorContext.lookup(SelectorContext.java:163) > at javax.naming.InitialContext.lookup(Unknown Source) > ... > ---------------- > > I don't know why I'm now seeing the pool errors when I didn't before. I > suppose the change to the Resource definition did that. > > > > > > > > I originally tried "jdbc/sus2". That failed to find "jdbc". I tried > > > changing the resource name to just "sus2" and tried looking up > > > "java:comp/env/sus2". That says it failed to find "sus2". > > > > > > > > context.xml resources are bound to comp/env tree (by webapp), tomee.xml > > ones are bound to openejb:Resource tree (global). > > > > > > > I'm including here an excerpt of the console output, which shows the > > > "sus2" resource being defined, and the later looking for > > > "java:comp/env/sus2", saying that "sus2" is not found. > > > -------------------------- > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} > > > Setting property 'source' to 'org.eclipse.jst.jee.server:webproj' did > > > not find a matching property. > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} > > > Setting property 'source' to 'org.eclipse.jst.jee.server:dumpjndi' did > > > not find a matching property. > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Server version: Apache Tomcat (TomEE)/8.0.8.5.3 (7.0.1) > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Server built: Jun 9 2016 11:16:29 UTC > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Server number: 8.5.3.0 > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: OS Name: Windows 7 > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: OS Version: 6.1 > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Architecture: amd64 > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Java Home: C:\Program Files\Java\jre1.8.0_102 > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: JVM Version: 1.8.0_102-b14 > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: JVM Vendor: Oracle Corporation > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: CATALINA_BASE: > > > > > > <homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tm > > > p0 Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: CATALINA_HOME: > > > > > > <homepath>\frameworks\apache-tomee-7.0.1-webprofile\apache-tomee-webpr > > > ofile-7.0.1 Aug 03, 2016 9:29:40 AM > > > sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Command line argument: > > > -Dcatalina.base=<homepath>\workspace\.metadata\.plugins\org.eclipse.ws > > > t.server.core\tmp0 Aug 03, 2016 9:29:40 AM > > > sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Command line argument: > > > -Dcatalina.home=<homepath>\frameworks\apache-tomee-7.0.1-webprofile\ap > > > ache-tomee-webprofile-7.0.1 Aug 03, 2016 9:29:40 AM > > > sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Command line argument: > > > -Dwtp.deploy=<homepath>\workspace\.metadata\.plugins\org.eclipse.wst.s > > > erver.core\tmp0\wtpwebapps Aug 03, 2016 9:29:40 AM > > > sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Command line argument: > > > -Djava.endorsed.dirs=<homepath>\frameworks\apache-tomee-7.0.1-webprofi > > > le\apache-tomee-webprofile-7.0.1\endorsed > > > Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke > > > INFO: Command line argument: -Dfile.encoding=Cp1252 Aug 03, 2016 > > > 9:29:40 AM sun.reflect.DelegatingMethodAccessorImpl invoke > > > INFO: The APR based Apache Tomcat Native library which allows optimal > > > performance in production environments was not found on the > > > java.library.path: C:\Program > > > Files\Java\jre1.8.0_102\bin;C:\Windows\Sun\Java\bin;C:\Windows\system3 > > > 2;C:\Windows;c:/Program > > > Files/Java/jdk1.8.0_102/bin/../jre/bin/server;c:/Program > > > Files/Java/jdk1.8.0_102/bin/../jre/bin;c:/Program > > > Files/Java/jdk1.8.0_102/bin/../jre/lib/amd64;c:\Program > > > Files\Java\jdk1.8.0_102\bin;C:\Program Files (x86)\RSA SecurID Token > > > Common;C:\Program Files (x86)\NVIDIA > > > Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\Sys > > > tem32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\Syst > > > em32\WindowsPowerShell\v1.0\;C:\Program > > > Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files > > > (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program > > > Files\1E\NomadBranch\;C:\Program Files (x86)\Enterprise > > > Vault\EVClient\;c:\Program Files\Java\jdk1.8.0_102\bin;C:\Program > > > Files\nodejs\;c:\Users\dk068x\frameworks\gradle-2.14.1-all\gradle- > > 2.14.1\bin;c:\Users\dk068x\frameworks\apache-groovy-sdk-2.4.7\groovy- > > 2.4.7\bin;<homepath>\AppData\Roaming\npm;<homepath>\Desktop;;. > > > Aug 03, 2016 9:29:40 AM sun.reflect.DelegatingMethodAccessorImpl > > > invoke > > > INFO: Initializing ProtocolHandler ["http-nio-8080"] Aug 03, 2016 > > > 9:29:41 AM sun.reflect.DelegatingMethodAccessorImpl invoke > > > INFO: Using a shared selector for servlet write/read Aug 03, 2016 > > > 9:29:41 AM sun.reflect.DelegatingMethodAccessorImpl invoke > > > INFO: Initializing ProtocolHandler ["ajp-nio-8009"] Aug 03, 2016 > > > 9:29:41 AM sun.reflect.DelegatingMethodAccessorImpl invoke > > > INFO: Using a shared selector for servlet write/read Aug 03, 2016 > > > 9:29:41 AM org.apache.openejb.util.OptionsLog info > > > INFO: Using > > > 'openejb.jdbc.datasource- > > creator=org.apache.tomee.jdbc.TomEEDataSourceCreator' > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.OpenEJB$Instance <init> > > > INFO: > > > ********************************************************************** > > > ********** Aug 03, 2016 9:29:41 AM org.apache.openejb.OpenEJB$Instance > > > <init> > > > INFO: OpenEJB http://tomee.apache.org/ Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.OpenEJB$Instance <init> > > > INFO: Startup: Wed Aug 03 09:29:41 PDT 2016 Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.OpenEJB$Instance <init> > > > INFO: Copyright 1999-2016 (C) Apache OpenEJB Project, All Rights > > Reserved. > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.OpenEJB$Instance <init> > > > INFO: Version: 7.0.1 > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.OpenEJB$Instance <init> > > > INFO: Build date: 20160623 > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.OpenEJB$Instance <init> > > > INFO: Build time: 12:04 > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.OpenEJB$Instance <init> > > > INFO: > > > ********************************************************************** > > > ********** Aug 03, 2016 9:29:41 AM org.apache.openejb.OpenEJB$Instance > > > <init> > > > INFO: openejb.home = > > > <homepath>\frameworks\apache-tomee-7.0.1-webprofile\apache-tomee-webpr > > > ofile-7.0.1 Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.OpenEJB$Instance <init> > > > INFO: openejb.base = > > > <homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tm > > > p0 Aug 03, 2016 9:29:41 AM org.apache.openejb.cdi.CdiBuilder > > > initializeOWB > > > INFO: Created new singletonService > > > org.apache.openejb.cdi.ThreadSingletonServiceImpl@37e547da > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.cdi.CdiBuilder > > > initializeOWB > > > INFO: Succeeded in installing singleton service Aug 03, 2016 9:29:41 > > > AM org.apache.openejb.config.ConfigurationFactory init > > > INFO: TomEE configuration file is > > > > > '<homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp > > 0\conf\tomee.xml' > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.config.ConfigurationFactory > > > configureService > > > INFO: Configuring Service(id=Tomcat Security Service, > > > type=SecurityService, provider-id=Tomcat Security Service) Aug 03, > > > 2016 9:29:41 AM org.apache.openejb.config.ConfigurationFactory > > > configureService > > > INFO: Configuring Service(id=Default Transaction Manager, > > > type=TransactionManager, provider-id=Default Transaction Manager) Aug > > > 03, 2016 9:29:41 AM org.apache.openejb.config.ConfigurationFactory > > > configureService > > > INFO: Configuring Service(id=sus2, type=Resource, provider-id=sus2) > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.util.OptionsLog info > > > INFO: Using 'openejb.deployments.classpath=false' > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.assembler.classic.Assembler > > > createRecipe > > > INFO: Creating TransactionManager(id=Default Transaction Manager) Aug > > > 03, 2016 9:29:41 AM org.apache.openejb.assembler.classic.Assembler > > > createRecipe > > > INFO: Creating SecurityService(id=Tomcat Security Service) Aug 03, > > > 2016 9:29:41 AM org.apache.openejb.assembler.classic.Assembler > > > createRecipe > > > INFO: Creating Resource(id=sus2) > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.assembler.classic.Assembler > > > unusedProperty > > > WARNING: unusedProperty maxActive - sus2 Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.assembler.classic.Assembler > > > unusedProperty > > > WARNING: unusedProperty maxIdle - sus2 Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.assembler.classic.Assembler > > > unusedProperty > > > WARNING: unusedProperty maxWait - sus2 Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.assembler.classic.Assembler > > > unusedProperty > > > WARNING: unusedProperty url - sus2 > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.assembler.classic.Assembler > > > unusedProperty > > > WARNING: unusedProperty username - sus2 Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.assembler.classic.Assembler > > > unusedProperty > > > WARNING: unusedProperty password - sus2 Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.server.ServiceManager initServer > > > INFO: Creating ServerService(id=cxf-rs) Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.server.SimpleServiceManager > > > start > > > INFO: ** Bound Services ** > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.server.SimpleServiceManager > > > printRow > > > INFO: NAME IP PORT > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.server.SimpleServiceManager > > > start > > > INFO: ------- > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.server.SimpleServiceManager > > > start > > > INFO: Ready! > > > Aug 03, 2016 9:29:41 AM sun.reflect.DelegatingMethodAccessorImpl > > > invoke > > > INFO: Initialization processed in 1542 ms Aug 03, 2016 9:29:41 AM > > > org.apache.tomee.catalina.OpenEJBNamingContextListener bindResource > > > INFO: Importing a Tomcat Resource with id 'UserDatabase' of type > > > 'org.apache.catalina.UserDatabase'. > > > Aug 03, 2016 9:29:41 AM org.apache.openejb.assembler.classic.Assembler > > > createRecipe > > > INFO: Creating Resource(id=UserDatabase) Aug 03, 2016 9:29:41 AM > > > sun.reflect.DelegatingMethodAccessorImpl invoke > > > INFO: Starting service Catalina > > > Aug 03, 2016 9:29:41 AM sun.reflect.DelegatingMethodAccessorImpl > > > invoke > > > INFO: Starting Servlet Engine: Apache Tomcat (TomEE)/8.0.8.5.3 (7.0.1) > > > Aug 03, 2016 9:29:41 AM org.apache.tomee.catalina.TomcatWebAppBuilder > > > init > > > INFO: ------------------------- localhost -> / Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.config.ConfigurationFactory > > > configureApplication > > > INFO: Configuring enterprise application: > > > <homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tm > > > p0\wtpwebapps\ROOT Aug 03, 2016 9:29:41 AM > > > org.apache.openejb.config.ConfigurationFactory > > > configureService > > > INFO: Configuring Service(id=Default Managed Container, > > > type=Container, provider-id=Default Managed Container) Aug 03, 2016 > > > 9:29:41 AM org.apache.openejb.config.AutoConfig > > > createContainer > > > INFO: Auto-creating a container for bean .Comp483003755: > > > Container(type=MANAGED, id=Default Managed Container) Aug 03, 2016 > > > 9:29:41 AM org.apache.openejb.assembler.classic.Assembler > > > createRecipe > > > INFO: Creating Container(id=Default Managed Container) Aug 03, 2016 > > > 9:29:42 AM org.apache.openejb.core.managed.SimplePassivater > > > init > > > INFO: Using directory <homepath>\AppData\Local\Temp for stateful > > > session passivation Aug 03, 2016 9:29:42 AM > > > org.apache.openejb.config.AppInfoBuilder build > > > INFO: Enterprise application > > > > > "<homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp > > 0\wtpwebapps\ROOT" > > > loaded. > > > Aug 03, 2016 9:29:42 AM org.apache.openejb.assembler.classic.Assembler > > > createApplication > > > INFO: Assembling app: > > > <homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tm > > > p0\wtpwebapps\ROOT Aug 03, 2016 9:29:42 AM > > > org.apache.openejb.assembler.classic.Assembler > > > createApplication > > > INFO: Deployed > > > Application(path=<homepath>\workspace\.metadata\.plugins\org.eclipse.w > > > st.server.core\tmp0\wtpwebapps\ROOT) > > > Aug 03, 2016 9:29:42 AM org.apache.tomee.catalina.TomcatWebAppBuilder > > > init > > > INFO: ------------------------- localhost -> /dumpjndi Aug 03, 2016 > > > 9:29:42 AM org.apache.openejb.config.ConfigurationFactory > > > configureApplication > > > INFO: Configuring enterprise application: > > > <homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tm > > > p0\wtpwebapps\dumpjndi Aug 03, 2016 9:29:42 AM > > > org.apache.openejb.config.AppInfoBuilder build > > > INFO: Enterprise application > > > > > "<homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp > > 0\wtpwebapps\dumpjndi" > > > loaded. > > > Aug 03, 2016 9:29:42 AM org.apache.openejb.assembler.classic.Assembler > > > createApplication > > > INFO: Assembling app: > > > <homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tm > > > p0\wtpwebapps\dumpjndi Aug 03, 2016 9:29:42 AM > > > org.apache.openejb.assembler.classic.Assembler > > > createApplication > > > INFO: Deployed > > > Application(path=<homepath>\workspace\.metadata\.plugins\org.eclipse.w > > > st.server.core\tmp0\wtpwebapps\dumpjndi) > > > Aug 03, 2016 9:29:42 AM org.apache.tomee.catalina.TomcatWebAppBuilder > > > init > > > INFO: ------------------------- localhost -> /webproj Aug 03, 2016 > > > 9:29:42 AM org.apache.openejb.config.ConfigurationFactory > > > configureApplication > > > INFO: Configuring enterprise application: > > > <homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tm > > > p0\wtpwebapps\webproj Aug 03, 2016 9:29:42 AM > > > org.apache.openejb.config.AppInfoBuilder build > > > INFO: Enterprise application > > > > > "<homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp > > 0\wtpwebapps\webproj" > > > loaded. > > > Aug 03, 2016 9:29:42 AM org.apache.openejb.assembler.classic.Assembler > > > createApplication > > > INFO: Assembling app: > > > <homepath>\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tm > > > p0\wtpwebapps\webproj Aug 03, 2016 9:29:42 AM > > > org.apache.openejb.assembler.classic.Assembler > > > createApplication > > > INFO: Deployed > > > Application(path=<homepath>\workspace\.metadata\.plugins\org.eclipse.w > > > st.server.core\tmp0\wtpwebapps\webproj) > > > Aug 03, 2016 9:29:42 AM sun.reflect.DelegatingMethodAccessorImpl > > > invoke > > > INFO: At least one JAR was scanned for TLDs yet contained no TLDs. > > > Enable debug logging for this logger for a complete list of JARs that > > > were scanned but no TLDs were found in them. Skipping unneeded JARs > > > during scanning can improve startup time and JSP compilation time. > > > Aug 03, 2016 9:29:42 AM org.apache.catalina.core.ApplicationContext > > > log > > > INFO: No Spring WebApplicationInitializer types detected on classpath > > > Aug 03, 2016 9:29:43 AM org.apache.catalina.core.ApplicationContext > > > log > > > INFO: Initializing Spring root WebApplicationContext > > > 2016-08-03 09:29:43,001 INFO [localhost-startStop-1] > > > context.ContextLoader (ContextLoader.java:305) - Root > > > WebApplicationContext: initialization started > > > 2016-08-03 09:29:43,180 DEBUG [localhost-startStop-1] > > > env.MutablePropertySources (MutablePropertySources.java:109) - Adding > > > [servletConfigInitParams] PropertySource with lowest search precedence > > > 2016-08-03 09:29:43,181 DEBUG [localhost-startStop-1] > > > env.MutablePropertySources (MutablePropertySources.java:109) - Adding > > > [servletContextInitParams] PropertySource with lowest search > > > precedence > > > 2016-08-03 09:29:43,189 DEBUG [localhost-startStop-1] > > > env.MutablePropertySources (MutablePropertySources.java:109) - Adding > > > [jndiProperties] PropertySource with lowest search precedence > > > 2016-08-03 09:29:43,190 DEBUG [localhost-startStop-1] > > > env.MutablePropertySources (MutablePropertySources.java:109) - Adding > > > [systemProperties] PropertySource with lowest search precedence > > > 2016-08-03 09:29:43,190 DEBUG [localhost-startStop-1] > > > env.MutablePropertySources (MutablePropertySources.java:109) - Adding > > > [systemEnvironment] PropertySource with lowest search precedence > > > 2016-08-03 09:29:43,190 DEBUG [localhost-startStop-1] > > > env.AbstractEnvironment (AbstractEnvironment.java:127) - Initialized > > > StandardServletEnvironment with PropertySources > > > [servletConfigInitParams,servletContextInitParams,jndiProperties,syste > > > mProperties,systemEnvironment] > > > 2016-08-03 09:29:43,204 DEBUG [localhost-startStop-1] > > > env.MutablePropertySources (MutablePropertySources.java:174) - > > > Replacing [servletContextInitParams] PropertySource with > > > [servletContextInitParams] > > > 2016-08-03 09:29:43,210 INFO [localhost-startStop-1] > > > support.AbstractApplicationContext > > > (AbstractApplicationContext.java:581) - Refreshing Root > > > WebApplicationContext: startup date [Wed Aug 03 09:29:43 PDT 2016]; > > > root of context hierarchy > > > 2016-08-03 09:29:43,293 INFO [localhost-startStop-1] > > > xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:317) - > > > Loading XML bean definitions from ServletContext resource > > > [/WEB-INF/applicationContext.xml] > > > 2016-08-03 09:29:43,381 INFO [localhost-startStop-1] > > > xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:317) - > > > Loading XML bean definitions from class path resource > > > [META-INF/cxf/cxf.xml] > > > 2016-08-03 09:29:43,409 INFO [localhost-startStop-1] > > > xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:317) - > > > Loading XML bean definitions from class path resource > > > [META-INF/cxf/cxf-servlet.xml] > > > 2016-08-03 09:29:43,490 INFO [localhost-startStop-1] > > > support.DefaultListableBeanFactory > > > (DefaultListableBeanFactory.java:843) - Overriding bean definition for > > bean 'webproj' with a different definition: > > > replacing [Generic bean: class > > > [org.apache.cxf.jaxrs.spring.JAXRSServerFactoryBeanDefinitionParser$Sp > > > ringJAXRSServerFactoryBean]; scope=; abstract=false; lazyInit=false; > > > autowireMode=0; dependencyCheck=0; autowireCandidate=true; > > > primary=false; factoryBeanName=null; factoryMethodName=null; > > > initMethodName=create; destroyMethodName=destroy] with [Generic bean: > > > class [com.att.webproj.services.WebProjController]; > > > scope=; abstract=false; lazyInit=false; autowireMode=0; > > > dependencyCheck=0; autowireCandidate=true; primary=false; > > > factoryBeanName=null; factoryMethodName=null; initMethodName=null; > > > destroyMethodName=null; defined in ServletContext resource > > > [/WEB-INF/applicationContext.xml]] > > > 2016-08-03 09:29:43,512 DEBUG [localhost-startStop-1] > > > support.AbstractApplicationContext > > > (AbstractApplicationContext.java:615) - Bean factory for Root > > WebApplicationContext: > > > > > org.springframework.beans.factory.support.DefaultListableBeanFactory@693 > > a3417: > > > defining beans > > > [cxf,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.a > > > pache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring > > > .BusExtensionPostProcessor,webproj,sus2ds,com.att.webproj.dao.OrdersDA > > > O#0]; > > > root of factory hierarchy > > > 2016-08-03 09:29:43,633 DEBUG [localhost-startStop-1] > > > support.AbstractApplicationContext > > > (AbstractApplicationContext.java:728) - Unable to locate MessageSource > > > with name 'messageSource': using default > > > [org.springframework.context.support.DelegatingMessageSource@741ac774] > > > 2016-08-03 09:29:43,637 DEBUG [localhost-startStop-1] > > > support.AbstractApplicationContext > > > (AbstractApplicationContext.java:752) - Unable to locate > > > ApplicationEventMulticaster with name > > > 'applicationEventMulticaster': using default > > > [org.springframework.context.event.SimpleApplicationEventMulticaster@a > > > 6b8658 > > > ] > > > 2016-08-03 09:29:43,864 WARN [localhost-startStop-1] > > > support.AbstractApplicationContext > > > (AbstractApplicationContext.java:549) - Exception encountered during > > > context initialization - cancelling refresh > > > attempt: org.springframework.beans.factory.BeanCreationException: > > > Error creating bean with name 'sus2ds': Invocation of init method > > > failed; nested exception is javax.naming.NameNotFoundException: Name > > > [sus2] is not bound in this Context. Unable to find [sus2]. > > > 2016-08-03 09:29:43,868 ERROR [localhost-startStop-1] > > > context.ContextLoader (ContextLoader.java:351) - Context > > > initialization failed > > > org.springframework.beans.factory.BeanCreationException: Error > > > creating bean with name 'sus2ds': Invocation of init method failed; > > > nested exception is javax.naming.NameNotFoundException: Name [sus2] is > > > not bound in this Context. Unable to find [sus2]. > > > --------------- > > > > > > > - about maven: ${user.home}/.m2/repository is the default base, you > > > > can override it to openejb.m2.home system property (in > > > > conf/system.properties for instance). If this folder doesn't exist > > > > we'll read the default settings.xml to get the localRespository > > value. > > > > > > Ok, so just to be clear, the "mvn:" prefix is only going to search a > > > local repository. It's not going to go to MavenCentral or anything > > like that. > > > The doc doesn't say anything at all about this. We need to find a > > > reasonable way to document this. > > > > > > > > It does a http request if the local lookup fails. Default http base is > > central if the version is a release and apache snapshot one if the > > version is a snapshot. This repo url can be customized specifying it in > > the mvn url > > (mv:http://company.com/maven2!groupId:artifactId:version) > > > > > > > Please give me more information about everything that happens after > > > "if this folder doesn't exist". > > > > > > > The very detail can be found > > in org.apache.openejb.loader.provisining.MavenResolver#quickMvnUrl > > method. > > > > > > > > > > > - about your "strange" error: tomee Resource attributes are about > > > > the resource factory and body of Resource tag is the list of > > > > properties used to set instance attributes. Tomcat put everything as > > > > attributes. This is why you got this error. > > > > > > Understood. The notion of "attributes" vs. "properties" is lost on > > > many people. I understand that they are different, but it needs to be > > > clear in the doc and in the messages. > > > > > > > - last point: we support some bridge between historical tomee > > > > definitions and tomcat datasources (to make the migration smooth) so > > > > you can still use JdbcDriver, UserName, Password, JdbcUrl: > > > > > > > > <Resource id="jdbc/sus2" type="DataSource" > > classpath="mvn:oracle:ojdbc6: > > > > 11.2.0.3"> > > > > JdbcDriver = oracle.jdbc.driver.OracleDriver > > > > MaxActive = 5 > > > > MaxIdle = 2 > > > > MaxWait = 10000 > > > > JdbcUrl = jdbc:oracle:thin:@<host>:1521:<sid> > > > > UserName = <userid> > > > > Password = <password> > > > > </Resource> > > > > > > > > Advantage of keeping these properties is the same definition will > > > > run with openejb (understand tomee without tomcat and embedded) > > > > which is a great way to debug a weird case reusing the same data as > > in tomee. > > > > > > And what parts of this are "historical tome definitions" and "tomcat > > > datasources"? How would someone know which properties/attributes are > > > "historical"? Many people using Tomcat or TomEE for the first time > > > know nothing about this history. > > > > > > > > The conversion is done there - > > https://github.com/apache/tomee/blob/master/tomee/tomee- > > jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java#L87 > > - and as you can see we try to override if missing only making both > > cases working. > > > > > > > > 2016-08-03 1:21 GMT+02:00 KARR, DAVID <[email protected]>: > > > > > > > > > I may be making some progress. Working from > > > > > http://tomee.apache.org/tomee-and-eclipse.html , it appears that > > > > > the "tomeee.xml" file that I edited in the Tomee distro is not > > > > > used in Eclipse. I used the "Import" feature as described to copy > > > > > the file > > > > into > > > > > the server defined in Eclipse. At that point, I got an error > > like > > > > this: > > > > > --------------------- > > > > > org.apache.openejb.OpenEJBException: > > > > > Unable to read OpenEJB configuration file at > > > > > > > > > <workspace>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf > > > > \tom > > > > ee.xml: > > > > > Unsupported Attribute(s): maxActive, maxIdle, maxWait, > > > > > driverClassName, url, username, password. > > > > > Supported Attributes are: type, jar, provider, id, class-name, > > > > > constructor, factory-name, classpath, jndi, aliases, > > > > > properties-provider, property-provider, depends-on. If the > > > > > setting is a configuration property it must be placed inside the > > element body. > > > > > --------------------- > > > > > > > > > > Really strange. > > > > > > > > > > I then modified the imported "tomee.xml" file, resulting in the > > > > > following approximate Resource definition: > > > > > -------------------- > > > > > <Resource id="jdbc/sus2" type="DataSource" > > > > > classpath="mvn:oracle:ojdbc6:11.2.0.3" > > > > > class-name="oracle.jdbc.driver.OracleDriver"> > > > > > maxActive = 5 > > > > > maxIdle = 2 > > > > > maxWait = 10000 > > > > > url = jdbc:oracle:thin:@<host>:1521:<sid> > > > > > username = <userid> > > > > > password = <password> > > > > > </Resource> > > > > > -------------- > > > > > > > > > > When I start up the server, I see the following in the console: > > > > > ------------------ > > > > > Aug 02, 2016 4:13:03 PM > > > > > org.apache.openejb.config.ConfigurationFactory > > > > > configureService > > > > > INFO: Configuring Service(id=jdbc/sus2, type=Resource, > > > > > provider-id=jdbc/sus2) > > > > > Aug 02, 2016 4:13:03 PM org.apache.openejb.util.OptionsLog info > > > > > INFO: Using 'openejb.deployments.classpath=false' > > > > > Aug 02, 2016 4:13:03 PM > > > > > org.apache.openejb.assembler.classic.Assembler > > > > > createRecipe > > > > > INFO: Creating TransactionManager(id=Default Transaction Manager) > > > > > Aug 02, 2016 4:13:03 PM > > > > > org.apache.openejb.assembler.classic.Assembler > > > > > createRecipe > > > > > INFO: Creating SecurityService(id=Tomcat Security Service) Aug 02, > > > > > 2016 4:13:03 PM org.apache.openejb.assembler.classic.Assembler > > > > > createRecipe > > > > > INFO: Creating Resource(id=jdbc/sus2) Aug 02, 2016 4:13:03 PM > > > > > org.apache.openejb.assembler.classic.Assembler > > > > > unusedProperty > > > > > WARNING: unusedProperty maxActive - jdbc/sus2 Aug 02, 2016 4:13:03 > > > > > PM org.apache.openejb.assembler.classic.Assembler > > > > > unusedProperty > > > > > WARNING: unusedProperty maxIdle - jdbc/sus2 Aug 02, 2016 4:13:03 > > > > > PM org.apache.openejb.assembler.classic.Assembler > > > > > unusedProperty > > > > > WARNING: unusedProperty maxWait - jdbc/sus2 Aug 02, 2016 4:13:03 > > > > > PM org.apache.openejb.assembler.classic.Assembler > > > > > unusedProperty > > > > > WARNING: unusedProperty url - jdbc/sus2 Aug 02, 2016 4:13:03 PM > > > > > org.apache.openejb.assembler.classic.Assembler > > > > > unusedProperty > > > > > WARNING: unusedProperty username - jdbc/sus2 Aug 02, 2016 4:13:03 > > > > > PM org.apache.openejb.assembler.classic.Assembler > > > > > unusedProperty > > > > > WARNING: unusedProperty password - jdbc/sus2 > > > > > ----------------- > > > > > > > > > > I don't understand what "unusedProperty" means (weird that it's > > > > > just one word). > > > > > > > > > > When I later try to reference that resource, I get the following: > > > > > -------------------- > > > > > javax.naming.NameNotFoundException: Name [jdbc/sus2] is not bound > > > > > in this Context. Unable to find [jdbc]. > > > > > -------------------- > > > > > > > > > > It's not clear to me whether that Resource definition put anything > > > > > into the JNDI context, or whether I'm just using the wrong JNDI > > > > > path to reference it. > > > > > > > > > > -----Original Message----- > > > > > From: Daniel Cunha [mailto:[email protected]] > > > > > Sent: Tuesday, August 02, 2016 2:10 PM > > > > > To: TomEE Users <[email protected]> > > > > > Subject: Re: Define datasource, reference JDBC driver, and see > > > > > init in console > > > > > > > > > > Hi David, > > > > > > > > > > yea, resources on TomEE is a mix (XML/Properties) Your definition > > > > > should following the pattern: > > > > > <Resource id="jdbc/sus2" type="DataSource"> > > > > > maxActive = 5 > > > > > maxIdle = 2 > > > > > maxWait = 10000 > > > > > driverClassName = oracle.jdbc.driver.OracleDriver > > > > > url = jdbc:oracle:thin:@<host>:1521:<sid> > > > > > username = <user> > > > > > password = <password> > > > > > </Resource> > > > > > > > > > > References you can see here: > > > > > http://tomee.apache.org/datasource-config.html > > > > > About maven, should be enough have the configuration in your > > > > settings.xml. > > > > > :) > > > > > > > > > > On Tue, Aug 2, 2016 at 5:52 PM, KARR, DAVID <[email protected]> > > wrote: > > > > > > > > > > > (I posted this first to tomcat-user, but I realized technically > > > > > > it should go to tomee-user. I apologize if this is a duplicate > > > > > > for > > > > you. > > > > > > In any case, this note has a little more info than the first > > > > > > note.) > > > > > > > > > > > > I'm attempting to use Tomcat(tomee) to run a REST service that > > > > > > will return some data from some SQL queries (Oracle). I've > > > > > > installed Tomee 7.0.1, which uses Tomcat 8.5.3. > > > > > > > > > > > > The JDBC driver is available from a private enterprise maven > > repo. > > > > > > I'd prefer to get it from there, as opposed to storing it > > locally. > > > > > > I noticed at > > > > > > http://tomee.apache.org/configuring-datasources.html , there is > > the possible notation of "mvn:g:a:v" for the "classpath" > > > > > > attribute. However, I don't see any way to configure the Maven > > > > > repositories this will reference. > > > > > > How do I tell it to look in a particular repo for this? Would > > > > > > it just implicitly use my $HOME/.m2/settings.xml file? > > > > > > > > > > > > My Resource definition in "conf/tomee.xml" looks something like > > > > this: > > > > > > ----------------------- > > > > > > <Resource id="jdbc/sus2" type="DataSource" > > > > > > maxActive="5" maxIdle="2" maxWait="10000" > > > > > > driverClassName="oracle.jdbc.driver.OracleDriver" > > > > > > url="jdbc:oracle:thin:@<host>:1521:<sid>" > > > > > > username="<user>" password="<password>"/> > > > > > > ---------------- > > > > > > > > > > > > Does this look correct? I find the Tomcat docs confusing, with > > > > > > respect to the required syntax for this. It's not clear whether > > > > > > a pure XML syntax is required, or a mixed XML/property syntax. > > > > > > > > > > > > If I start the instance, should I see any default output that > > > > > > will show Tomcat connecting to this datasource? If it doesn't > > > > > > show this by default, is there a way to turn this on? > > > > > > > > > > > > I tried writing the code to obtain the JNDI resource (Spring > > > > > > context references), but it just says it can't find it (fails at > > > > > > "jdbc"), so perhaps my Resource definition was ignored, or my > > > > > > JNDI path is > > > > wrong. > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Daniel Cunha > > > > > https://twitter.com/dvlc_ > > > > > http://www.tomitribe.com > > > > > http://www.tomitribe.io > > > > > > > > >
