Description
The startup script run.sh provides an option (-n, --netboot) for starting the AS on a server using a minimal set of jars, and obtaining the bulk of the JBoss distribution from a remote web server:
./run.sh -c netboot -n http://my.remote.host/jboss-dist
In order for the netboot mechanism to work, two elements are required:
the JBoss distribution on the remote server needs to have all deploy directories in unexploded form (i.e. http-invoker.sar and other archives need to be zipped up into files)
(ii) the remote web server through which the JBoss distribution is made available needs to support the WebDAV PROPFIND command
See the admittedly old documentation in section 1.3 at http://docs.jboss.org/jbossas/jboss4guide/r2/html/ch01.html.
In trying to test the run.sh -n option in EAP 5.0.1, I found that the netboot option generated multiple exceptions. Here are the steps I took to try to test the option:
1. Install a copy of Apache on my local machine
2. Set up a WebDAV compatible directory in /var/www and test access to this directory using a command-line client (such as cadaver)
3. Create a copy of jboss-eap-5.0.1 in which a new server configuration, netboot, is defined and where netboot is a copy of default in which all exploded directories in netboot/deploy and netboot/deployers have been zipped up (in the manner used in the examples from the documentation listed above)
4. Copy the jboss-eap-5.0.1 distribution to the WebDAV server
5. From a copy of jboss-eap-5.0.1 which has had all but the ./bin directory removed, start JBoss using the netboot option
> ./run.sh -c netboot -n http://localhost:80/webdav/jboss-eap-5.0/jboss-as
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as
JAVA: /opt/jdk-1.6.0_04/bin/java
JAVA_OPTS: -Dprogram.name=run.sh -server -Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rm
i.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Djava.net.preferIPv4Stack=true
CLASSPATH: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as/bin/run.jar:/tmp/jboss/jboss-eap-5.0-binonly/jboss-as/bin/jboss-logmanager.jar:/opt/jdk-1.6.0_04/lib/tools.jar
=========================================================================
15:51:23,857 INFO [ServerImpl] Starting JBoss (Microcontainer)...
15:51:23,857 INFO [ServerImpl] Release ID: JBoss [EAP] 5.0.1 (build: SVNTag=JBPAPP_5_0_1 date=201003241622)
15:51:23,858 INFO [ServerImpl] Bootstrap URL: null
15:51:23,858 INFO [ServerImpl] Home Dir: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as
15:51:23,858 INFO [ServerImpl] Home URL: http://localhost:80/webdav/jboss-eap-5.0/jboss-as/
15:51:23,858 INFO [ServerImpl] Library URL: http://localhost:80/webdav/jboss-eap-5.0/jboss-as/lib/
15:51:23,859 INFO [ServerImpl] Patch URL: null
15:51:23,859 INFO [ServerImpl] Common Base URL: http://localhost:80/webdav/jboss-eap-5.0/jboss-as/common/
15:51:23,859 INFO [ServerImpl] Common Library URL: http://localhost:80/webdav/jboss-eap-5.0/jboss-as/common/lib/
15:51:23,859 INFO [ServerImpl] Server Name: netboot
15:51:23,860 INFO [ServerImpl] Server Base Dir: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as/server
15:51:23,860 INFO [ServerImpl] Server Base URL: http://localhost:80/webdav/jboss-eap-5.0/jboss-as/server/
15:51:23,860 INFO [ServerImpl] Server Config URL: http://localhost:80/webdav/jboss-eap-5.0/jboss-as/server/netboot/conf/
15:51:23,860 INFO [ServerImpl] Server Home Dir: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as/server/netboot
15:51:23,860 INFO [ServerImpl] Server Home URL: http://localhost:80/webdav/jboss-eap-5.0/jboss-as/server/netboot/
15:51:23,860 INFO [ServerImpl] Server Data Dir: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as/server/netboot/data
15:51:23,860 INFO [ServerImpl] Server Library URL: http://localhost:80/webdav/jboss-eap-5.0/jboss-as/server/netboot/lib/
15:51:23,860 INFO [ServerImpl] Server Log Dir: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as/server/netboot/log
15:51:23,860 INFO [ServerImpl] Server Native Dir: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as/server/netboot/tmp/native
15:51:23,861 INFO [ServerImpl] Server Temp Dir: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as/server/netboot/tmp
15:51:23,861 INFO [ServerImpl] Server Temp Deploy Dir: /tmp/jboss/jboss-eap-5.0-binonly/jboss-as/server/netboot/tmp/deploy
15:51:24,864 INFO [ServerImpl] Starting Microcontainer, bootstrapURL=http://localhost:80/webdav/jboss-eap-5.0/jboss-as/server/netboot/conf/bootstrap.xml
15:51:25,571 INFO [VFSCacheFactory] Initializing VFSCache [org.jboss.virtual.plugins.cache.CombinedVFSCache]
15:51:25,574 INFO [VFSCacheFactory] Using VFSCache [CombinedVFSCache[real-cache: null]]
15:51:25,610 ERROR [AbstractKernelController] Error installing to Configured: name=VFSCache state=Instantiated
java.lang.RuntimeException: Error configuring property: permanentRoots for VFSCache
at org.jboss.kernel.plugins.dependency.ConfigureAction.dispatchSetProperty(ConfigureAction.java:112)
at org.jboss.kernel.plugins.dependency.ConfigureAction.setAttributes(ConfigureAction.java:85)
at org.jboss.kernel.plugins.dependency.ConfigureAction.installActionInternal(ConfigureAction.java:44)
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction
.java:62)
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1633)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:935)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1083)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:985)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:775)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540)
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBean(AbstractKernelDeployer.java:319)
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBeans(AbstractKernelDeployer.java:297)
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deploy(AbstractKernelDeployer.java:130)
at org.jboss.kernel.plugins.deployment.BasicKernelDeployer.deploy(BasicKernelDeployer.java:76)
at org.jboss.bootstrap.microcontainer.TempBasicXMLDeployer.deploy(TempBasicXMLDeployer.java:91)
at org.jboss.bootstrap.microcontainer.TempBasicXMLDeployer.deploy(TempBasicXMLDeployer.java:161)
at org.jboss.bootstrap.microcontainer.ServerImpl.doStart(ServerImpl.java:138)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:450)
at org.jboss.Main.boot(Main.java:221)
at org.jboss.Main$1.run(Main.java:556)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: No context factory for http://localhost:80/webdav/jboss-eap-5.0/jboss-as/server/netboot/lib/
at org.jboss.virtual.VFS.getVFS(VFS.java:232)
at org.jboss.virtual.plugins.cache.CombinedVFSCache.setPermanentRoots(CombinedVFSCache.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59)
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:150)
at org.jboss.beans.info.plugins.DefaultPropertyInfo.set(DefaultPropertyInfo.java:143)
at org.jboss.beans.info.plugins.BeanInfoUtil.set(BeanInfoUtil.java:177)
at org.jboss.beans.info.plugins.AbstractBeanInfo.setProperty(AbstractBeanInfo.java:289)
at org.jboss.kernel.plugins.dependency.PropertyDispatchWrapper.execute(PropertyDispatchWrapper.java:113)
at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextA
ction.java:111)
at org.jboss.kernel.plugins.dependency.ConfigureAction.dispatchSetProperty(ConfigureAction.java:107)
... 25 more
The full console log is attached.