Hi

Are you able to wrap this up in a little example project that we could take
a look at?

Cheers

Jon

On Tue, Nov 27, 2018 at 9:32 PM Kean Erickson <[email protected]>
wrote:

> Oh duh, I should have seen that coming. Well, now that I'm attempting to
> inject TomeeConfiguration in a managed class (annotated @Stateless), I'm
> getting this when I attempt to provide that @Resource no matter what
> managed class I put it in:
>
> 27-Nov-2018 12:57:09.469 SEVERE [localhost-startStop-1]
> org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal Unable to
> deploy collapsed ear in war
> StandardEngine[Catalina].StandardHost[localhost].StandardContext[]
>  org.apache.openejb.OpenEJBException: Can't find resource for class <<
> *Classpath
> for class containing @Resource TomeeConfiguration goes here* >>#config. (No
> provider available for resource-ref 'null' of type
> '....*TomeeConfiguration*'
> for '<< *Arbitrary class annotated with @Stateless goes here * >>'.)
>
> It looks like the resource that I declared in resources.xml is attempting
> to be linked to every managed class when I start TomEE, and something is
> failing upon attempting to link the first (arbitrary) one. The arbitrary
> managed class that fails has nothing to do with the managed class that
> actually contains the @Resource TomeeConfiguration... the injection of
> TomeeConfiguration in any managed class is causing this error. I should
> note that I don't think the issue is with the @Stateless managed class in
> question, which is working properly otherwise.
>
> I've seen this " No provider available for resource-ref 'null' " error in
> some googling, but it generally has to do with a library that is either
> missing or needs to be put in an exclusions list in /conf, and not project
> code itself. I'm not sure what the "null" here is all about, is it
> expecting that I put something in /WEB-INF/web.xml ?
>
> Also, the Properties meant to be returned.. is that class
> java.util.Properties, or is it supposed to be class
> org.apache.openejb.jee.jpa.unit.Properties?
>
> I should also mention, I'm using an exploded WAR deployment.. so I actually
> wound up putting resources.xml in WEB-INF.
> Thanks again,
> -Kean
>
> On Mon, Nov 26, 2018 at 10:17 PM Romain Manni-Bucau <[email protected]
> >
> wrote:
>
> > @Resource(name="config")
> > private TomeeConfiguration config;
> >
> > In a managed class to inject it. If you do a new tomee does nothing.
> >
> > Le mar. 27 nov. 2018 04:48, Kean Erickson <[email protected]> a
> > écrit :
> >
> > > Thank you, that sounds like it'll work. I'm finding that
> getProperties()
> > on
> > > my configuration file returns null though, I'm wondering if I'm using
> the
> > > right Properties class (java.util.Properties)?
> > >
> > > 1. Here's my WEB-INF/resources.xml class (I removed the package name)
> > > --------------------------------------------------------
> > > <Resource id="config" class-name=".....TomeeConfiguration">
> > >         UserName = postgres
> > > </Resource>
> > > --------------------------------------------------------
> > >
> > >
> > > 2. Here's my TomeeConfiguration class (taken from the old
> documentation's
> > > example):
> > > --------------------------------------------------------
> > > package  .....;
> > > import java.util.Properties;
> > >
> > > public class TomeeConfiguration {
> > >     private Properties properties;
> > >
> > >     public Properties getProperties() {
> > >         return properties;
> > >     }
> > >     public void setProperties(final Properties properties) {
> > >         this.properties = properties;
> > >     }
> > > }
> > > --------------------------------------------------------
> > >
> > > 3. Then after the container has been prepared, I try the following, but
> > > c.getProperties() returns null.
> > > --------------------------------------------------------
> > > TomeeConfiguration c = new TomeeConfiguration();
> > > String tomeeUsername = c.getProperties().getProperty("UserName");
> > > --------------------------------------------------------
> > >
> > >
> > > I'm wondering what I'm missing?
> > > Thanks for your time,
> > > -Kean
> > >
> > >
> > > On Mon, Nov 26, 2018 at 4:05 AM Jonathan Gallimore <
> > > [email protected]> wrote:
> > >
> > > > Hi
> > > >
> > > > Yes - you can also define resources at the application level, by
> > defining
> > > > resources in WEB-INF/resources.xml in your .war file. The syntax is
> > > pretty
> > > > much the same as tomee.xml, but with <resources> as the top level tag
> > as
> > > > opposed to <tomee>. The will use the application classpath,
> eliminating
> > > the
> > > > requirement to add your resource class to lib/.
> > > >
> > > > Let us know how you get on - if you're stuck, I can dig out an
> example.
> > > >
> > > > Kind Regards
> > > >
> > > > Jon
> > > >
> > > > On Sun, Nov 25, 2018 at 10:47 PM Romain Manni-Bucau <
> > > [email protected]
> > > > >
> > > > wrote:
> > > >
> > > > > Guess you want to read
> > > > > http://tomee.apache.org/admin/configuration/index.html - doc is
> more
> > > > > complete and up to date.
> > > > >
> > > > > Le dim. 25 nov. 2018 23:44, Kean Erickson <[email protected]
> >
> > a
> > > > > écrit :
> > > > >
> > > > > > The docs mention a way of obtaining properties in code from a
> > > resource
> > > > in
> > > > > > Tomee.xml, under "Custom resources"
> > > > > >
> > > > > > http://tomee.apache.org/application-resources.html
> > > > > >
> > > > > > ..such that I could denote a class-name on the resource pointing
> > to a
> > > > > > configuration class (which would be pretty boilerplate, judging
> by
> > > the
> > > > > > example). But in order to do this, I have to package the config
> > class
> > > > in
> > > > > > TomEE's /lib directory. This introduces some complications in my
> > > case,
> > > > > for
> > > > > > other reasons.. I was wondering if there's any other way to
> obtain
> > > > these
> > > > > > resource properties without having to add anything to TomEE's
> > > > classpath.
> > > > > >
> > > > > > Thanks,
> > > > > > -Kean
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to