[jboss-as7-dev] cl.getResources() doesn't work from module-based code
David M. Lloyd
david.lloyd at redhat.com
Wed Sep 12 12:25:27 EDT 2012
If this is in the context of a deployment, then yes the TCCL will be the
class loader of the deployment and that's the one you should use if you
want the *combination* of services provided to the deployment by the
container *plus* the services defined in the deployment itself. But
you're using an intermediate aggregate module (which we don't normally
do for AS services). This means in order for it to work you have to do
two things:
1. Set the dependencies whose services must be visible to the deployment
to services="export"
2. When the module is imported into the deployment (presumably via the
deployer), it has to import services from that dependency as well.
Now if you don't want to actually load service implementations from the
deployment itself then you definitely shouldn't be using TCCL; in this
case you'd just use your "skeleton key" module's class loader.
On 09/12/2012 10:59 AM, Bill Burke wrote:
> Thing is, this works for regular Resteasy WAR deployments.
> Thread.currentThread().getContextClassloader().
>
> On 9/12/2012 11:51 AM, Rob Cernich wrote:
>> I don't believe the context classloader is what you want. You may have better luck with something like getClass().getClassLoader().
>>
>> Best,
>> Rob
>>
>> ----- Original Message -----
>>>
>>>
>>> On 9/12/2012 11:23 AM, David M. Lloyd wrote:
>>>> On 09/12/2012 10:18 AM, Bill Burke wrote:
>>>>> I'm creating a custom login-module that is declared within
>>>>> standalone.xml. This module references a new module that I have
>>>>> deployed (see below). The login-module class uses Resteasy to
>>>>> make
>>>>> invocations. The problem is that Resteasy is not able to find and
>>>>> register built-in providers. Resteasy does this by doing:
>>>>>
>>>>> Enumeration<URL> en =
>>>>> Thread.currentThread().getContextClassLoader().getResources("META-INF/services/"
>>>>> + Providers.class.getName());
>>>>> while (en.hasMoreElements())
>>>>> {
>>>>> URL url = en.nextElement();
>>>>>
>>>>>
>>>>> No URLs are turning up when calling cl.getResources(). Is there
>>>>> some
>>>>> configuration switch I don't know about?
>>>>
>>>> Yeah - any time you have a dependency on a module whose
>>>> "META-INF/services" you want to access, you have to add
>>>> "services="import"" to that dependency, else that directory is
>>>> filtered out.
>>>
>>> <dependencies>
>>> <module name="org.jboss.resteasy.resteasy-jackson-provider"
>>> services="import"/>
>>> </dependencies>
>>>
>>> Still doesn't work.
>>>
>>> Bill
>>>
>>> --
>>> Bill Burke
>>> JBoss, a division of Red Hat
>>> http://bill.burkecentral.com
>>> _______________________________________________
>>> jboss-as7-dev mailing list
>>> jboss-as7-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>
>
--
- DML
More information about the jboss-as7-dev
mailing list