[jboss-as7-dev] jaxrs doesn't deploy with certain module configurations
Bill Burke
bburke at redhat.com
Wed Jan 16 21:15:25 EST 2013
Ok, I narrowed this down further.
I reverted my project and everything worked great again. I found that
if I get an init parameter from within the start() method of my
authentication valve, for some reason, it blows away the context-param
metadata set by the jaxrs deployer:
context.getServletContext().getInitParameter("skeleton.key.config.file");
Still doesn't make sense, but maybe this is a better symptom. I'm a bit
tired, so I'll try and create a smaller project that reproduces the
problem later.
On 1/16/2013 8:40 PM, Stuart Douglas wrote:
> Is the code to reproduce this on github?
>
> Stuart
>
> Bill Burke wrote:
>> I have a very strange, rather complex problem that I'm having a very
>> hard time figuring out exactly what the cause is. Its a huge blocker
>> for me.
>>
>> * JBoss AS 7.1.1
>> * I have a WAR with very simple JAX-RS classes in them
>> * The WAR has security constraints
>> * Uses basic auth
>>
>> The above works great, but when I add some more, specifically:
>>
>> * I add a custom valve that does authentication
>> * The custom valve class lives in a module that is imported via
>> jboss-deployment-structure.xml
>> * This module has JAX-RS dependencies (not exported)
>>
>> The above does not work. I'm getting 404's when invoking on the
>> deployed JAX-RS classes. I've been placing a bunch of logging
>> statements within resteasy (3.0) and also the JAX-RS deployer which I
>> forked from the 7.1.1 tagged release.
>>
>> * The valve works like a charm
>> * A JAX-RS servlet is being deployed
>> * The AS7 jaxrs deployment scanner is finding the appropriate classes
>> * The AS7 jaxrs integration processor is adding the appropriate
>> context-params to the web deployment so resteasy servlet knows what to
>> deploy. ("resteasy.scanned.resources")
>> * But, the context-params are null when the resteasy servlet finally
>> decides to initialize, so no JAX-RS classes from the deployment are
>> deployed.
>>
>> I have no idea why!!
>>
>> To further narrow the problem, I created a simple pass-thru
>> authentication valve class within the same custom module. It worked, so
>> I decided to just include the initialization code (which does nothing
>> really but create some classes, but does reference a bunch of Resteasy
>> classes). Then, the problem surfaces again.
>>
>> It seems like a module/classloader problem, based on adding code to the
>> pass-thru valve, but I don't know how the frack classloader issues could
>> effect servlet metadata created by the JAX-RS deployer.
>>
>> If you've gotten through this read, thanks.
>>
>>
>>
--
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com
More information about the jboss-as7-dev
mailing list