> -----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
>
> Hello
Thanks for replying. There's a lot of information and questions in my reply.
My priority is getting the JNDI reference working.
> Before digging deeper in your problem a small note on this one: since
> you encounter some issue with the doc I would love you to try to
> enrich/rewrite some part of it to make it smoother for next newcomer.
> Would it be possible?
Sure, it's possible. I've worked on the docs for many frameworks that I've
only been a user for. Just as long as you realize that I can only write what I
know about. My only source of knowledge is the docs themselves, and what I
learn here. I'll never forget the unnamed framework I was using, where I
discovered accidentally that there was at least one completely undocumented
feature, and the author stated that I'm welcome to submit PRs, which I
responded to with "Sure, any other undocumented features you want me to
document?"
However, my priority is getting this little app working, so the doc work is
secondary.
> Next about your issue:
>
> - you don't need to set class-name which is intended for custom
> resources (DataSource are "known" resources)
The message said this attribute is supported. If you're going to support it,
you need to say SOMEWHERE what it's for. Except for in this error message, I
can't find this attribute described anywhere.
I would say the same thing for every single attribute mentioned in that
message. If it's not mentioned in the doc, it needs to be, so I'd like to
understand what it's for, and where in the docs you THINK it should be
documented.
Also, I'd like clarification on this distinction between XML attributes and
properties. Apparently some things can be set in XML attributes, and some
things have to be set in properties. Except by "example", what are the details
of what goes in an XML attribute, and what goes in a property.
> - unusedProperty is one word cause it is a method name (we can surely
> enrich the message BTW). Means you set a property but this one doesn't
> exist on the created instance (the connection pool there). That's one
> smooth way to say the configuration is wrong but doesn't prevent to run.
This isn't a doc problem, it's a problem with the message. That message
definitely needs to be cleaned up.
> - 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.
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".
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\tmp0
Aug 03, 2016 9:29:40 AM sun.reflect.NativeMethodAccessorImpl invoke
INFO: CATALINA_HOME:
<homepath>\frameworks\apache-tomee-7.0.1-webprofile\apache-tomee-webprofile-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.wst.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\apache-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.server.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-webprofile\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\system32;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\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\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-webprofile-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\tmp0
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\tmp0\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\tmp0\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\tmp0\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\tmp0\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.wst.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\tmp0\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\tmp0\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\tmp0\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.wst.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\tmp0\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\tmp0\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\tmp0\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.wst.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,systemProperties,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$SpringJAXRSServerFactoryBean];
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@693a3417:
defining beans
[cxf,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,webproj,sus2ds,com.att.webproj.dao.OrdersDAO#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@a6b8658]
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.
Please give me more information about everything that happens after "if this
folder doesn't exist".
> - 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.
> 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
> >