Discussion:
This repository is not writable ("this" = ${GERONIMO_HOME}/repository)
James Lee
2013-09-19 11:54:09 UTC
Permalink
Hello,

A first time install of geronimo (3.0.1) and I'm starting by deploying
the test WAR HelloWorld.war as described here:
http://geronimo.apache.org/GMOxDOC30/quick-start-apache-geronimo-for-the-impatient.html#Quickstart-ApacheGeronimofortheimpatient-Creatinganddeployingasampleapplication

This fails as described in ${GERONIMO_SERVER}/var/log/geronimo.log:

2013-09-18 17:28:06,120 INFO [ModuleHandler] Deploying HelloWorld.war
2013-09-18 17:28:07,027 ERROR [ModuleHandler] Unable to deploy:
java.lang.IllegalStateException: This repository is not writable
org.apache.geronimo.common.DeploymentException:
java.lang.IllegalStateException: This repository is not writable
at org.apache.geronimo.deployment.Deployer.install(Deployer.java:423)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:297)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:145)
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.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:883)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245)
at
org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:116)
at
org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:61)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.IllegalStateException: This repository is not writable
at
org.apache.geronimo.kernel.repository.AbstractRepository.verifyDestination(AbstractRepository.java:97)
at
org.apache.geronimo.kernel.repository.AbstractRepository.copyToRepository(AbstractRepository.java:63)
at
org.apache.geronimo.system.configuration.RepositoryConfigurationStore.install(RepositoryConfigurationStore.java:364)
at org.apache.geronimo.deployment.Deployer.install(Deployer.java:408)
... 13 more



"This repository" (after much digging) is ${GERONIMO_HOME}/repository. I
suggest
framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/repository/AbstractRepository.java
should be:

// is this a writable repository
if (!rootFile.canWrite()) {
throw new IllegalStateException("The repository " +
rootFile + " is not writable");
}


Well of course it's not writable, it is the point of having both
GERONIMO_HOME and GERONIMO_SERVER which I have set as the notes in
bin/geronimo. Only GERONIMO_SERVER is writable by the geronimo user.

Why is it trying to deploy to the read only system files? How is this
supposed to work?



James.

Loading...