You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@openwebbeans.apache.org by PÉNET LUDOVIC <l....@senat.fr> on 2014/11/17 10:15:20 UTC

OWB on Google App Engine ?

Dear all,

does any of you use OWB on Google App Engine (GAE) ?

When I do (using latest stable 1.2), I get reflections related errors at
startup.

If any of you had a pom.xml for MyFaces 2.2 /OWB 1.2 (and ideally
Deltaspike 1.1) along with web.xml and other specific files, thanks in
advance,

Ludovic

|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|


Re: OWB on Google App Engine ?

Posted by Romain Manni-Bucau <rm...@gmail.com>.
or try to use Unsafe.getUnsafe() since that's available for java 7 applications.


Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau


2014-11-19 11:03 GMT+01:00 Mark Struberg <st...@yahoo.de>:
> We probably might do the Proxy factories as SPI Service. So we can replace the calls to Unsafe with newInstance. Or even provide ways to run without proxies (for smallish Java SE projects).
>
> LieGrue,
> strub
>
>
>
>
>> On Monday, 17 November 2014, 23:16, PÉNET LUDOVIC <l....@senat.fr> wrote:
>> >
>> Romain Manni-Bucau a écrit :
>>>  HI
>>>
>>>  maybe lost a part of the thread in gmail but what's the issue with
>>>  Unsafe? Does GAE uses a security manager? If so it just needs to be
>>>  configured
>>
>> The problem is their Reflection policy ( in
>> https://cloud.google.com/appengine/docs/java/ )
>>
>> «
>> Reflection
>>
>> An application is allowed full, unrestricted, reflective access to its own
>> classes.
>>
>> It may query any private members, call the method
>> java.lang.reflect.AccessibleObject.setAccessible(), and read/set private
>> members.
>>
>> An application can also reflect on JRE and API classes, such as
>> java.lang.String and javax.servlet.http.HttpServletRequest. However, it
>> can only access public members of these classes, not protected or private.
>>
>> An application cannot reflect against any other classes not belonging to
>> itself, and it can not use the setAccessible() method to circumvent these
>> restrictions.
>>
>> »
>>
>> When one start OWB, this translates to exceptions such as :
>>
>>
>> [INFO] Caused by: java.lang.IllegalStateException: Cannot get sun.misc.Unsafe
>> [INFO]  at
>> org.apache.webbeans.proxy.AbstractProxyFactory$2.run(AbstractProxyFactory.java:598)
>> [INFO]  at java.security.AccessController.doPrivileged(Native Method)
>> [INFO]  at
>> org.apache.webbeans.proxy.AbstractProxyFactory.initializeUnsafe(AbstractProxyFactory.java:585)
>> [INFO]  at
>> org.apache.webbeans.proxy.AbstractProxyFactory.<init>(AbstractProxyFactory.java:64)
>> [INFO]  at
>> org.apache.webbeans.proxy.InterceptorDecoratorProxyFactory.<init>(InterceptorDecoratorProxyFactory.java:74)
>> [INFO]  at
>> org.apache.webbeans.config.WebBeansContext.<init>(WebBeansContext.java:79)
>> [INFO]  at
>> org.apache.webbeans.config.WebBeansContext.<init>(WebBeansContext.java:98)
>> [INFO]  at
>> org.apache.webbeans.corespi.DefaultSingletonService.get(DefaultSingletonService.java:54)
>> [INFO]  at
>> org.apache.webbeans.corespi.DefaultSingletonService.get(DefaultSingletonService.java:28)
>> [INFO]  at
>> org.apache.webbeans.config.WebBeansFinder.getSingletonInstance(WebBeansFinder.java:51)
>> [INFO]  at
>> org.apache.webbeans.config.WebBeansContext.getInstance(WebBeansContext.java:164)
>> [INFO]  at
>> org.apache.webbeans.config.WebBeansContext.currentInstance(WebBeansContext.java:182)
>> [INFO]  at
>> org.apache.webbeans.jsf.OwbApplicationFactory.<init>(OwbApplicationFactory.java:37)
>> [INFO]  ... 41 more
>> [INFO] Caused by: java.lang.IllegalAccessException: Reflection is not
>> allowed on private static final sun.misc.Unsafe sun.misc.Unsafe.theUnsafe
>> [INFO]  at
>> com.google.appengine.tools.development.agent.runtime.Runtime.verifyWhiteListed(Runtime.java:77)
>> [INFO]  at
>> com.google.appengine.tools.development.agent.runtime.Runtime.verifyReadable(Runtime.java:85)
>> [INFO]  at
>> com.google.appengine.tools.development.agent.runtime.Runtime.verifyAndRun(Runtime.java:367)
>> [INFO]  at
>> com.google.appengine.tools.development.agent.runtime.Runtime.get(Runtime.java:164)
>> [INFO]  at
>> org.apache.webbeans.proxy.AbstractProxyFactory$2.run(AbstractProxyFactory.java:594)
>> [INFO]  ... 53 more
>>
>> Thank you for your attention !
>>
>>
>> Ludovic
>>
>> |
>> | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
>> |
>>

Re: OWB on Google App Engine ?

Posted by Mark Struberg <st...@yahoo.de>.
sure, we are always happy about bug reports and even more about helping hands :)

I also hope you did like what you see when you did dig into OWB code-wise. We tried hard to not have people instantly get 'eye-cancer' when they look at it. But you know, it's a large codebase, so there is also room for improvement.

LieGrue,
strub




On Saturday, 22 November 2014, 12:21, Ludovic Pénet <l....@senat.fr> wrote:
>Ok, thanks again.
>
>Preparing a patch was just fun anyway. Do not hesitate to ask me if I can help.
>
>I intend to test many PaaS... I might raise other issues
>
>Best regards,
>
>Ludovic
>-- 
>Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté. 
>|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|
>
>

Re: OWB on Google App Engine ?

Posted by Ludovic Pénet <l....@senat.fr>.
Ok, thanks again.

Preparing a patch was just fun anyway. Do not hesitate to ask me if I can help.

I intend to test many PaaS... I might raise other issues

Best regards,

Ludovic
-- 
Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté.
|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|

Re: OWB on Google App Engine ?

Posted by Mark Struberg <st...@yahoo.de>.
Well this was just a quick fix. A need more thoughts need to go into it to leverage other proxying logic possibilities. We will do this in trunk I think. For now it's really nice to have it running on GAE again. And as calls to Unsafe are not allowed on GAE, I fear there is other way than newInstance() to create proxies.

Please note that we usually only will create a single instance of each proxy and cache it! So it does not hurt that heavily as one might think.


LieGrue,
strub




> On Saturday, 22 November 2014, 0:39, PÉNET LUDOVIC <l....@senat.fr> wrote:
> > 
> Mark Struberg a écrit :
>>  Hi!
>> 
>>  Could you please checkout the latest branches/owb-1.2.x?
>> 
>>  I implemented some fallbacks which get used when running on GAE now.
>> 
>>  It basically boils down to not using Unsafe but newInstance() if we cannot
>>  get the allocate method from Unsafe. Of course this has some impact and
>>  might slow down your beans a bit, but it should work fine for now.
> I tested it and it seems to work. Thanks !
> 
> However, it seems to me that the SPI approach that you suggested first is
> better. For complex objects, running the constructor everytime might be
> significant performance hit. The newInstance way could be another
> selectable implementation...
> 
> Thanks again,
> 
> 
> Ludovic
> 
> |
> | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
> |
>

Re: OWB on Google App Engine ?

Posted by PÉNET LUDOVIC <l....@senat.fr>.
Mark Struberg a écrit :
> Hi!
>
> Could you please checkout the latest branches/owb-1.2.x?
>
> I implemented some fallbacks which get used when running on GAE now.
>
> It basically boils down to not using Unsafe but newInstance() if we cannot
> get the allocate method from Unsafe. Of course this has some impact and
> might slow down your beans a bit, but it should work fine for now.
I tested it and it seems to work. Thanks !

However, it seems to me that the SPI approach that you suggested first is
better. For complex objects, running the constructor everytime might be
significant performance hit. The newInstance way could be another
selectable implementation...

Thanks again,

Ludovic

|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|


Re: OWB on Google App Engine ?

Posted by Mark Struberg <st...@yahoo.de>.
Hi!

Could you please checkout the latest branches/owb-1.2.x?

I implemented some fallbacks which get used when running on GAE now. 

It basically boils down to not using Unsafe but newInstance() if we cannot get the allocate method from Unsafe. Of course this has some impact and might slow down your beans a bit, but it should work fine for now.


LieGrue,
strub





> On Friday, 21 November 2014, 16:39, PÉNET LUDOVIC <l....@senat.fr> wrote:
> > 
> Mark Struberg a écrit :
>>  We probably might do the Proxy factories as SPI Service. So we can replace
>>  the calls to Unsafe with newInstance. Or even provide ways to run without
>>  proxies (for smallish Java SE projects).
>> 
>>  LieGrue,
>>  strub
>> 
> I created issue 1029 ( https://issues.apache.org/jira/browse/OWB-1029 )
> and proposed a patch to 1.5.0-SNAPSHOT.
> 
> Best regards,
> 
> 
> Ludovic
> 
> |
> | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
> |
>

Re: OWB on Google App Engine ?

Posted by PÉNET LUDOVIC <l....@senat.fr>.
Mark Struberg a écrit :
> We probably might do the Proxy factories as SPI Service. So we can replace
> the calls to Unsafe with newInstance. Or even provide ways to run without
> proxies (for smallish Java SE projects).
>
> LieGrue,
> strub
>
I created issue 1029 ( https://issues.apache.org/jira/browse/OWB-1029 )
and proposed a patch to 1.5.0-SNAPSHOT.

Best regards,

Ludovic

|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|


Re: OWB on Google App Engine ?

Posted by Mark Struberg <st...@yahoo.de>.
We probably might do the Proxy factories as SPI Service. So we can replace the calls to Unsafe with newInstance. Or even provide ways to run without proxies (for smallish Java SE projects).

LieGrue,
strub




> On Monday, 17 November 2014, 23:16, PÉNET LUDOVIC <l....@senat.fr> wrote:
> > 
> Romain Manni-Bucau a écrit :
>>  HI
>> 
>>  maybe lost a part of the thread in gmail but what's the issue with
>>  Unsafe? Does GAE uses a security manager? If so it just needs to be
>>  configured
> 
> The problem is their Reflection policy ( in
> https://cloud.google.com/appengine/docs/java/ )
> 
> «
> Reflection
> 
> An application is allowed full, unrestricted, reflective access to its own
> classes.
> 
> It may query any private members, call the method
> java.lang.reflect.AccessibleObject.setAccessible(), and read/set private
> members.
> 
> An application can also reflect on JRE and API classes, such as
> java.lang.String and javax.servlet.http.HttpServletRequest. However, it
> can only access public members of these classes, not protected or private.
> 
> An application cannot reflect against any other classes not belonging to
> itself, and it can not use the setAccessible() method to circumvent these
> restrictions.
> 
> »
> 
> When one start OWB, this translates to exceptions such as :
> 
> 
> [INFO] Caused by: java.lang.IllegalStateException: Cannot get sun.misc.Unsafe
> [INFO]  at
> org.apache.webbeans.proxy.AbstractProxyFactory$2.run(AbstractProxyFactory.java:598)
> [INFO]  at java.security.AccessController.doPrivileged(Native Method)
> [INFO]  at
> org.apache.webbeans.proxy.AbstractProxyFactory.initializeUnsafe(AbstractProxyFactory.java:585)
> [INFO]  at
> org.apache.webbeans.proxy.AbstractProxyFactory.<init>(AbstractProxyFactory.java:64)
> [INFO]  at
> org.apache.webbeans.proxy.InterceptorDecoratorProxyFactory.<init>(InterceptorDecoratorProxyFactory.java:74)
> [INFO]  at
> org.apache.webbeans.config.WebBeansContext.<init>(WebBeansContext.java:79)
> [INFO]  at
> org.apache.webbeans.config.WebBeansContext.<init>(WebBeansContext.java:98)
> [INFO]  at
> org.apache.webbeans.corespi.DefaultSingletonService.get(DefaultSingletonService.java:54)
> [INFO]  at
> org.apache.webbeans.corespi.DefaultSingletonService.get(DefaultSingletonService.java:28)
> [INFO]  at
> org.apache.webbeans.config.WebBeansFinder.getSingletonInstance(WebBeansFinder.java:51)
> [INFO]  at
> org.apache.webbeans.config.WebBeansContext.getInstance(WebBeansContext.java:164)
> [INFO]  at
> org.apache.webbeans.config.WebBeansContext.currentInstance(WebBeansContext.java:182)
> [INFO]  at
> org.apache.webbeans.jsf.OwbApplicationFactory.<init>(OwbApplicationFactory.java:37)
> [INFO]  ... 41 more
> [INFO] Caused by: java.lang.IllegalAccessException: Reflection is not
> allowed on private static final sun.misc.Unsafe sun.misc.Unsafe.theUnsafe
> [INFO]  at
> com.google.appengine.tools.development.agent.runtime.Runtime.verifyWhiteListed(Runtime.java:77)
> [INFO]  at
> com.google.appengine.tools.development.agent.runtime.Runtime.verifyReadable(Runtime.java:85)
> [INFO]  at
> com.google.appengine.tools.development.agent.runtime.Runtime.verifyAndRun(Runtime.java:367)
> [INFO]  at
> com.google.appengine.tools.development.agent.runtime.Runtime.get(Runtime.java:164)
> [INFO]  at
> org.apache.webbeans.proxy.AbstractProxyFactory$2.run(AbstractProxyFactory.java:594)
> [INFO]  ... 53 more
> 
> Thank you for your attention !
> 
> 
> Ludovic
> 
> |
> | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
> |
> 

Re: OWB on Google App Engine ?

Posted by PÉNET LUDOVIC <l....@senat.fr>.
Romain Manni-Bucau a écrit :
> HI
>
> maybe lost a part of the thread in gmail but what's the issue with
> Unsafe? Does GAE uses a security manager? If so it just needs to be
> configured

The problem is their Reflection policy ( in
https://cloud.google.com/appengine/docs/java/ )

«
Reflection

An application is allowed full, unrestricted, reflective access to its own
classes.

It may query any private members, call the method
java.lang.reflect.AccessibleObject.setAccessible(), and read/set private
members.

An application can also reflect on JRE and API classes, such as
java.lang.String and javax.servlet.http.HttpServletRequest. However, it
can only access public members of these classes, not protected or private.

An application cannot reflect against any other classes not belonging to
itself, and it can not use the setAccessible() method to circumvent these
restrictions.

»

When one start OWB, this translates to exceptions such as :


[INFO] Caused by: java.lang.IllegalStateException: Cannot get sun.misc.Unsafe
[INFO]  at
org.apache.webbeans.proxy.AbstractProxyFactory$2.run(AbstractProxyFactory.java:598)
[INFO]  at java.security.AccessController.doPrivileged(Native Method)
[INFO]  at
org.apache.webbeans.proxy.AbstractProxyFactory.initializeUnsafe(AbstractProxyFactory.java:585)
[INFO]  at
org.apache.webbeans.proxy.AbstractProxyFactory.<init>(AbstractProxyFactory.java:64)
[INFO]  at
org.apache.webbeans.proxy.InterceptorDecoratorProxyFactory.<init>(InterceptorDecoratorProxyFactory.java:74)
[INFO]  at
org.apache.webbeans.config.WebBeansContext.<init>(WebBeansContext.java:79)
[INFO]  at
org.apache.webbeans.config.WebBeansContext.<init>(WebBeansContext.java:98)
[INFO]  at
org.apache.webbeans.corespi.DefaultSingletonService.get(DefaultSingletonService.java:54)
[INFO]  at
org.apache.webbeans.corespi.DefaultSingletonService.get(DefaultSingletonService.java:28)
[INFO]  at
org.apache.webbeans.config.WebBeansFinder.getSingletonInstance(WebBeansFinder.java:51)
[INFO]  at
org.apache.webbeans.config.WebBeansContext.getInstance(WebBeansContext.java:164)
[INFO]  at
org.apache.webbeans.config.WebBeansContext.currentInstance(WebBeansContext.java:182)
[INFO]  at
org.apache.webbeans.jsf.OwbApplicationFactory.<init>(OwbApplicationFactory.java:37)
[INFO]  ... 41 more
[INFO] Caused by: java.lang.IllegalAccessException: Reflection is not
allowed on private static final sun.misc.Unsafe sun.misc.Unsafe.theUnsafe
[INFO]  at
com.google.appengine.tools.development.agent.runtime.Runtime.verifyWhiteListed(Runtime.java:77)
[INFO]  at
com.google.appengine.tools.development.agent.runtime.Runtime.verifyReadable(Runtime.java:85)
[INFO]  at
com.google.appengine.tools.development.agent.runtime.Runtime.verifyAndRun(Runtime.java:367)
[INFO]  at
com.google.appengine.tools.development.agent.runtime.Runtime.get(Runtime.java:164)
[INFO]  at
org.apache.webbeans.proxy.AbstractProxyFactory$2.run(AbstractProxyFactory.java:594)
[INFO]  ... 53 more

Thank you for your attention !

Ludovic

|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|


Re: OWB on Google App Engine ?

Posted by Romain Manni-Bucau <rm...@gmail.com>.
HI

maybe lost a part of the thread in gmail but what's the issue with
Unsafe? Does GAE uses a security manager? If so it just needs to be
configured


Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau


2014-11-17 22:21 GMT+01:00 "PÉNET LUDOVIC" <l....@senat.fr>:
>
> "PÉNET LUDOVIC" a écrit :
>> Mark Struberg a écrit :
>>> Hi Ludovic!
>>>
>>> Do you haven an example? I did run OWB on GAE a looong time ago, but did
>>> not test lately.
>>> If you have a sample for us then we will make it work ;)
>>
>> Thanks a lot.
>>
>> Please find attacher a tar.bz2 of a very simple example. I just created a
>> simple app using a GAE archetype, then added dependencies for PrimeFaces
>> 5.1 / MyFaces 2.2 / OpenWebBeans 1.2 / Deltaspike 1.0.
>>
>> I use :
>> Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4;
>> 2014-08-11T22:58:10+02:00)
>> Maven home: /usr/local/apache-maven-3.2.3
>> Java version: 1.7.0_65, vendor: Oracle Corporation
>> Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
>> Default locale: fr_FR, platform encoding: UTF-8
>> OS name: "linux", version: "3.13.0-36-generic", arch: "amd64", family:
>> "unix"
>>
>>
>> ... which seems to fit GAE requirements (maven 3.1 and newer, Java 7).
>>
>> I have the enclosed log, where you will find several reflection related
>> errors.
>
> I took a closer look at it and the root of the problem is the use of the
> instance of sun.misc.Unsafe in
> org.apache.webbeans.proxy.AbstractProxyFactory.
>
> The method sun.misc.Unsafe#allocateInstance is retrieved by
> AbstractProxyFactory#initializeUnsafe . This last method is a private
> method, called by the constructor of AbstractProxyFactory.
>
> As it is hard coded, a quick and dirty trick could be to shadow this
> class, for example using the maven shade plugin to create a custom OWB
> package, to replace the use of sun.misc.Unsafe#allocateInstance by
> com.google.apphosting.api.ReflectionUtils#allocateInstance
>
> Not very nice, not very evolutive, of course. I hope someone has a better
> solution. :-)
>
> A better way could be to have some kind of UnsafeAllocator hierarchy,
> allowing one to provide custom methods for specific cases like this one.
>
> Ludovic
>
> |
> | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
> |
>

Re: OWB on Google App Engine ?

Posted by PÉNET LUDOVIC <l....@senat.fr>.
"PÉNET LUDOVIC" a écrit :
> Mark Struberg a écrit :
>> Hi Ludovic!
>>
>> Do you haven an example? I did run OWB on GAE a looong time ago, but did
>> not test lately.
>> If you have a sample for us then we will make it work ;)
>
> Thanks a lot.
>
> Please find attacher a tar.bz2 of a very simple example. I just created a
> simple app using a GAE archetype, then added dependencies for PrimeFaces
> 5.1 / MyFaces 2.2 / OpenWebBeans 1.2 / Deltaspike 1.0.
>
> I use :
> Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4;
> 2014-08-11T22:58:10+02:00)
> Maven home: /usr/local/apache-maven-3.2.3
> Java version: 1.7.0_65, vendor: Oracle Corporation
> Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
> Default locale: fr_FR, platform encoding: UTF-8
> OS name: "linux", version: "3.13.0-36-generic", arch: "amd64", family:
> "unix"
>
>
> ... which seems to fit GAE requirements (maven 3.1 and newer, Java 7).
>
> I have the enclosed log, where you will find several reflection related
> errors.

I took a closer look at it and the root of the problem is the use of the
instance of sun.misc.Unsafe in
org.apache.webbeans.proxy.AbstractProxyFactory.

The method sun.misc.Unsafe#allocateInstance is retrieved by
AbstractProxyFactory#initializeUnsafe . This last method is a private
method, called by the constructor of AbstractProxyFactory.

As it is hard coded, a quick and dirty trick could be to shadow this
class, for example using the maven shade plugin to create a custom OWB
package, to replace the use of sun.misc.Unsafe#allocateInstance by
com.google.apphosting.api.ReflectionUtils#allocateInstance

Not very nice, not very evolutive, of course. I hope someone has a better
solution. :-)

A better way could be to have some kind of UnsafeAllocator hierarchy,
allowing one to provide custom methods for specific cases like this one.

Ludovic

|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|


Re: OWB on Google App Engine ?

Posted by PÉNET LUDOVIC <l....@senat.fr>.
Mark Struberg a écrit :
> Hi Ludovic!
>
> Do you haven an example? I did run OWB on GAE a looong time ago, but did
> not test lately.
> If you have a sample for us then we will make it work ;)

Thanks a lot.

Please find attacher a tar.bz2 of a very simple example. I just created a
simple app using a GAE archetype, then added dependencies for PrimeFaces
5.1 / MyFaces 2.2 / OpenWebBeans 1.2 / Deltaspike 1.0.

I use :
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4;
2014-08-11T22:58:10+02:00)
Maven home: /usr/local/apache-maven-3.2.3
Java version: 1.7.0_65, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: fr_FR, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-36-generic", arch: "amd64", family: "unix"


... which seems to fit GAE requirements (maven 3.1 and newer, Java 7).

I have the enclosed log, where you will find several reflection related
errors.


Thanks again.

Ludovic
|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|

Re: OWB on Google App Engine ?

Posted by Mark Struberg <st...@yahoo.de>.
Hi Ludovic!

Do you haven an example? I did run OWB on GAE a looong time ago, but did not test lately.
If you have a sample for us then we will make it work ;)

LieGrue,
strub



----- Original Message -----
> From: PÉNET LUDOVIC <l....@senat.fr>
> To: user@openwebbeans.apache.org
> Cc: 
> Sent: Monday, 17 November 2014, 10:15
> Subject: OWB on Google App Engine ?
> 
> Dear all,
> 
> does any of you use OWB on Google App Engine (GAE) ?
> 
> When I do (using latest stable 1.2), I get reflections related errors at
> startup.
> 
> If any of you had a pom.xml for MyFaces 2.2 /OWB 1.2 (and ideally
> Deltaspike 1.1) along with web.xml and other specific files, thanks in
> advance,
> 
> Ludovic
> 
> |
> | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
> |
>