Re: [Resteasy-users] Limit RestEasy to one war inside an ear?

2012-12-06 Thread Bill Burke


On 12/6/2012 4:39 AM, Heiko W.Rupp wrote:
> Hey Bill,
>
> Am 05.12.2012 um 22:37 schrieb Bill Burke:
>
>> Java EE 6 doesn't support EJB + JAX-RS components that are not deployed
>> under the WEB-INF/lib or WEB-INF/classes.  SO, you must move
>> biz-stuff.jar into rest.war or create a JAX-RS service that delegates to
>> the EJBs.
>
> I don't exactly understand this, as my set up works (except for that one case)
> perfectly. I have a rest.war I set some params that are picked up by RE and
> then a jar with all my rest endpoint implementation classes (SLSB with @Path 
> and so on).
> The REST stuff inside the jar gets activated by the presence of 
> @ApplicationPath on
> one of my application classes in the jar and then RE scans the EJBs and 
> provides
> endpoints for the ones decorated with @Path. Works nicely.

Where is the JAX-RS resource classes? Where is the Application class? 
Which jar?  And where is this jar in the EAR?

If AS7 is allowing you to deploy JAX-RS in a .jar that is *NOT* inside a 
WAR, then this is a huge huge bug.JAX-RS does not have a way to 
define security constraints so it is required to be deployed within a 
specific WEB application (.WAR).  Also, @ApplicationPath is not a 
context-root.  It is a servlet-mapping URL for a JAX-RS dispatcher servlet.

>>
>> But, Resteasy can support it your case with a special config switch.
>>
>> 
>>resteasy.jndi.resources
>>LibraryBean/local
>> 
>
> But here I have to manually list all the @Local classes manually and can't use
> the autoscan feature described above.
>
>
> My issue is now that I have several web-apps inside the .ear with
> different context roots and I want the REST-endpoint only be present
> below /rest and not in other places.
>

Then, the EJB jar needs to be put in the WEB-INF/lib of the WAR that has 
a /rest context-root. Or, you can use the technique above.  I would 
suggest deploying your EJBs with a WAR.



-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users


Re: [Resteasy-users] Limit RestEasy to one war inside an ear?

2012-12-06 Thread Heiko W.Rupp
I think I found the solution.

When I put a class with @ApplicationPath inside the .war for /rest and omit it
from the .jar, the rest-api is available only on the /rest context
And in my case it still finds all classes with @Path inside the jar

  Heiko

Am 06.12.2012 um 10:39 schrieb Heiko W.Rupp:

> Hey Bill,
> 
> Am 05.12.2012 um 22:37 schrieb Bill Burke:
> 
>> Java EE 6 doesn't support EJB + JAX-RS components that are not deployed 
>> under the WEB-INF/lib or WEB-INF/classes.  SO, you must move 
>> biz-stuff.jar into rest.war or create a JAX-RS service that delegates to 
>> the EJBs.
> 
> I don't exactly understand this, as my set up works (except for that one case)
> perfectly. I have a rest.war I set some params that are picked up by RE and
> then a jar with all my rest endpoint implementation classes (SLSB with @Path 
> and so on).
> The REST stuff inside the jar gets activated by the presence of 
> @ApplicationPath on
> one of my application classes in the jar and then RE scans the EJBs and 
> provides
> endpoints for the ones decorated with @Path. Works nicely.
>> 
>> But, Resteasy can support it your case with a special config switch.
>> 
>> 
>>  resteasy.jndi.resources
>>  LibraryBean/local
>>   
> 
> But here I have to manually list all the @Local classes manually and can't use
> the autoscan feature described above.
> 
> 
> My issue is now that I have several web-apps inside the .ear with 
> different context roots and I want the REST-endpoint only be present
> below /rest and not in other places.
> 
> I was thinking that there may be an annotation or property to tell RestEasy
> to only "intercept" requests that go to the /rest context root, but not to 
> /examples.
> 
> Perhaps I need to change my whole application setup so that I put my rest 
> endpoint
> classes inside the war as EE6 allows
> 
>>> so I have in As7 the following situation:
>>> 
>>> rhq.ear/
>>>   coregui.war/   at /coregui
>>>   portal.war   at /
>>>   rest.war/  at /rest
>>>   rest-examples.war/   at /rest-examples
>>>   biz-stuff.jar, containing the SLSBs implementing the REST-Interface
>>> 
>>> Now I want my rest-endpoints to live below /rest (e.g. localhost:8080/rest/ 
>>> )
>>> 
>>> So inside the SLSBs I have one class with @ApplicationPath("/"), so that 
>>> this
>>> does not add another part to /rest/.
>>> 
>>> This has the effect that for all web contexts RestEasy is started and that 
>>> then /rest/
>>> is taking over requests to all other web contexts.
>>> 
>>> Is there a way in the above setup to still get the comfort of 
>>> @ApplicationPath,
>>> but limiting it to rest.war?
>>> 
>>>  Thanks
>>>  Heiko
>>> 
>>> 
>>> 
>>> --
>>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
>>> Remotely access PCs and mobile devices and provide instant support
>>> Improve your efficiency, and focus on delivering more value-add services
>>> Discover what IT Professionals Know. Rescue delivers
>>> http://p.sf.net/sfu/logmein_12329d2d
>>> 
>>> 
>>> 
>>> ___
>>> Resteasy-users mailing list
>>> Resteasy-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/resteasy-users
>>> 
>> 
>> -- 
>> Bill Burke
>> JBoss, a division of Red Hat
>> http://bill.burkecentral.com
>> 
>> --
>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
>> Remotely access PCs and mobile devices and provide instant support
>> Improve your efficiency, and focus on delivering more value-add services
>> Discover what IT Professionals Know. Rescue delivers
>> http://p.sf.net/sfu/logmein_12329d2d
>> ___
>> Resteasy-users mailing list
>> Resteasy-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/resteasy-users
> 
> -- 
> Reg. Adresse: Red Hat GmbH, Technopark II, Haus C, 
> Werner-von-Siemens-Ring 14, D-85630 Grasbrunn
> Handelsregister: Amtsgericht München HRB 153243
> Geschaeftsführer:  Mark Hegarty, Charlie Peters, Michael Cunningham, Charles 
> Cachera
> 
> --
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d___
> Resteasy-users mailing list
> Resteasy-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/resteasy-users

-- 
Reg. Adresse: Red Hat GmbH, Technopark II, Haus C, 
Werner-von-Siemens-Ring 14, D-85630 Grasbrunn
Handelsregister: Amtsgericht München HRB 153243
Geschaeftsführer:  Mark Hegarty, Charlie Peters, Michael C

Re: [Resteasy-users] Limit RestEasy to one war inside an ear?

2012-12-06 Thread Heiko W.Rupp
Hey Bill,

Am 05.12.2012 um 22:37 schrieb Bill Burke:

> Java EE 6 doesn't support EJB + JAX-RS components that are not deployed 
> under the WEB-INF/lib or WEB-INF/classes.  SO, you must move 
> biz-stuff.jar into rest.war or create a JAX-RS service that delegates to 
> the EJBs.

I don't exactly understand this, as my set up works (except for that one case)
perfectly. I have a rest.war I set some params that are picked up by RE and
then a jar with all my rest endpoint implementation classes (SLSB with @Path 
and so on).
The REST stuff inside the jar gets activated by the presence of 
@ApplicationPath on
one of my application classes in the jar and then RE scans the EJBs and provides
endpoints for the ones decorated with @Path. Works nicely.
> 
> But, Resteasy can support it your case with a special config switch.
> 
> 
>   resteasy.jndi.resources
>   LibraryBean/local
>

But here I have to manually list all the @Local classes manually and can't use
the autoscan feature described above.


My issue is now that I have several web-apps inside the .ear with 
different context roots and I want the REST-endpoint only be present
below /rest and not in other places.

I was thinking that there may be an annotation or property to tell RestEasy
to only "intercept" requests that go to the /rest context root, but not to 
/examples.

Perhaps I need to change my whole application setup so that I put my rest 
endpoint
classes inside the war as EE6 allows

>> so I have in As7 the following situation:
>> 
>> rhq.ear/
>>coregui.war/   at /coregui
>>portal.war   at /
>>rest.war/  at /rest
>>rest-examples.war/   at /rest-examples
>>biz-stuff.jar, containing the SLSBs implementing the REST-Interface
>> 
>> Now I want my rest-endpoints to live below /rest (e.g. localhost:8080/rest/ )
>> 
>> So inside the SLSBs I have one class with @ApplicationPath("/"), so that this
>> does not add another part to /rest/.
>> 
>> This has the effect that for all web contexts RestEasy is started and that 
>> then /rest/
>> is taking over requests to all other web contexts.
>> 
>> Is there a way in the above setup to still get the comfort of 
>> @ApplicationPath,
>> but limiting it to rest.war?
>> 
>>   Thanks
>>   Heiko
>> 
>> 
>> 
>> --
>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
>> Remotely access PCs and mobile devices and provide instant support
>> Improve your efficiency, and focus on delivering more value-add services
>> Discover what IT Professionals Know. Rescue delivers
>> http://p.sf.net/sfu/logmein_12329d2d
>> 
>> 
>> 
>> ___
>> Resteasy-users mailing list
>> Resteasy-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/resteasy-users
>> 
> 
> -- 
> Bill Burke
> JBoss, a division of Red Hat
> http://bill.burkecentral.com
> 
> --
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> ___
> Resteasy-users mailing list
> Resteasy-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/resteasy-users

-- 
Reg. Adresse: Red Hat GmbH, Technopark II, Haus C, 
Werner-von-Siemens-Ring 14, D-85630 Grasbrunn
Handelsregister: Amtsgericht München HRB 153243
Geschaeftsführer:  Mark Hegarty, Charlie Peters, Michael Cunningham, Charles 
Cachera



signature.asc
Description: Message signed with OpenPGP using GPGMail
--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d___
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users


Re: [Resteasy-users] Limit RestEasy to one war inside an ear?

2012-12-05 Thread Bill Burke
Java EE 6 doesn't support EJB + JAX-RS components that are not deployed 
under the WEB-INF/lib or WEB-INF/classes.  SO, you must move 
biz-stuff.jar into rest.war or create a JAX-RS service that delegates to 
the EJBs.

But, Resteasy can support it your case with a special config switch.


   resteasy.jndi.resources
   LibraryBean/local


In this case, JAX-RS annotations must be on the interface or class that 
is used as the EJB proxy.  Also, JAX-RS field injection is not supported 
in such scenarios.

Finally, I'm not understanding what you are doing with @ApplicatinPath. 
  This can only be applied to Application classes.


On 12/5/2012 3:45 PM, Heiko W.Rupp wrote:
> Hi,
>
> so I have in As7 the following situation:
>
> rhq.ear/
> coregui.war/   at /coregui
> portal.war   at /
> rest.war/  at /rest
> rest-examples.war/   at /rest-examples
> biz-stuff.jar, containing the SLSBs implementing the REST-Interface
>
> Now I want my rest-endpoints to live below /rest (e.g. localhost:8080/rest/ )
>
> So inside the SLSBs I have one class with @ApplicationPath("/"), so that this
> does not add another part to /rest/.
>
> This has the effect that for all web contexts RestEasy is started and that 
> then /rest/
> is taking over requests to all other web contexts.
>
> Is there a way in the above setup to still get the comfort of 
> @ApplicationPath,
> but limiting it to rest.war?
>
>Thanks
>Heiko
>
>
>
> --
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
>
>
>
> ___
> Resteasy-users mailing list
> Resteasy-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/resteasy-users
>

-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users