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\tomee.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:danielsoro@gmail.com]
Sent: Tuesday, August 02, 2016 2:10 PM
To: TomEE Users <users@tomee.apache.org>
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 <dk068x@att.com> 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
|