tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fabian Schwarzer (Inxmail GmbH)" <Fabian.Schwar...@inxmail.de>
Subject AW: Arquillian remote adapter not able to deploy to a "really remote" TomEE?
Date Fri, 03 Jan 2014 14:50:31 GMT
Thank you for your quick reply!
I've set the property to true, but that just changes the FileNotFoundException to org.apache.openejb.OpenEJBRuntimeException:
java.io.FileNotFoundException: /opt/tomee/conf/C:\0\62d2b262-795d-4597-a5e0-e2715737caea.war

I searched for the string openejb.deployer.binaries.use in the whole 1.6.0 code base and only
had one hit in https://github.com/apache/tomee/blob/tomee-1.6.0/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java
. So the Arquillian adapter does not seem to check if its set, does it?

So how should I proceed? Try to fix it myself and open a pull request or should I raise a
JIRA ticket?

Fabian

-----Urspr√ľngliche Nachricht-----
Von: Romain Manni-Bucau [mailto:rmannibucau@gmail.com] 
Gesendet: Freitag, 3. Januar 2014 15:00
An: users@tomee.apache.org
Betreff: Re: Arquillian remote adapter not able to deploy to a "really remote" TomEE?

Did you try adding as system properties:
openejb.deployer.binaries.use=true on the remote tomee

That said I think we miss openejb.deployer.binaries.value support in adapter itself if the
host is really remote

Their would be workaround but not that arquillian complaint and we need to fix it in all cases
so I prefer to not speak of them right now Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau



2014/1/3 Fabian Schwarzer (Inxmail GmbH) <Fabian.Schwarzer@inxmail.de>:
> Hi everyone!
>
> I got following setup:
>
> -          Development machine where I code
>
> -          VM (started by Vagrant) on that dev machine that runs TomEE 1.6.0
>
> -          Arquillian tests and the tomee-remote adapter
>
> Now I want to start the execution of my Arquillian tests on the dev machine which should
use the remote TomeEE (on the VM) as the target container.
> This does not work due to the following exception:
>
> Caused by: org.apache.openejb.OpenEJBRuntimeException: java.io.FileNotFoundException:
/home/vagrant/C:\Users\fsr\AppData\Local\Temp\arquillian-tomee-app-working-dir\0\a3682ea3-16c1-44d6-b183-fd579872517a.war
(No such file or directory)
>         at org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(TomcatWebappDeployer.java:46)
>         at org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:168)
>         at org.apache.openejb.assembler.DeployerEjb.deploy(DeployerEjb.java:133)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:182)
>         at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:164)
>         at org.apache.openejb.security.internal.InternalSecurityInterceptor.invoke(InternalSecurityInterceptor.java:34)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:182)
>         at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:164)
>         at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:180)
>         at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:99)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:182)
>         at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:164)
>         at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:80)
>         at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:212)
>        at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:181)
>         at org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:370)
>         at org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:181)
>         at org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:344)
>         at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:240)
>         at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:86)
>         at org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:58)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>         at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:611)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>         at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
>         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:724)
>     Caused by: java.io.FileNotFoundException: /home/vagrant/C:\Users\fsr\AppData\Local\Temp\arquillian-tomee-app-working-dir\0\a3682ea3-16c1-44d6-b183-fd579872517a.war
(No such file or directory)
>         at java.util.zip.ZipFile.open(Native Method)
>         at java.util.zip.ZipFile.<init>(ZipFile.java:215)
>         at java.util.zip.ZipFile.<init>(ZipFile.java:145)
>         at java.util.jar.JarFile.<init>(JarFile.java:153)
>         at java.util.jar.JarFile.<init>(JarFile.java:117)
>         at org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:476)
>         at org.apache.tomee.catalina.deployment.TomcatWebappDeployer.deploy(TomcatWebappDeployer.java:44)
>         ... 53 more
>
> As far as I understand from looking at the exception and the relevant 
> code (both deploy methods) on
>
> https://github.com/apache/tomee/blob/tomee-1.6.0/tomee/tomee-catalina/
> src/main/java/org/apache/tomee/catalina/deployment/TomcatWebappDeploye
> r.java
>
> and
>
> https://github.com/apache/tomee/blob/tomee-1.6.0/arquillian/arquillian
> -tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEE
> Container.java
>
> the TomEE remote adapter does not transfer the war file to the remote container like
other remote adapters (e.g. the one for Glassfish) do. Instead, the adapter just passes a
path to the remote TomEE which then goes and tries to fetch the war from that location.
>
> This works well in an environment where Arquillian tests and the remote TomEE run on
the same system, but fails in an setup like mine were the remote container "really" is remote.
> Are my observations correct? If not, what do I miss and how am I able to let the TomEE
remote adapter transfer the whole war file? If they are correct, how should I proceed since
this is a very very crucial feature for us that determines whether we can use TomEE or not.
> We might be able to contribute to the project and implement that feature...would be glad
if you could point me to the right people in order to get some sort of entry point...
>
> Thanks,
> Fabian
>
>
>

Mime
View raw message