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) <[email protected]>: > 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/TomcatWebappDeployer.java > > and > > https://github.com/apache/tomee/blob/tomee-1.6.0/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.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 > > >
