AEM Forms JEE on Redhat Linux - Run as a service gives IOException: Unable to write to deploy directory: / | Community
Skip to main content
Level 2
January 15, 2024
Question

AEM Forms JEE on Redhat Linux - Run as a service gives IOException: Unable to write to deploy directory: /

  • January 15, 2024
  • 1 reply
  • 454 views

Hello,

 

I have a new server on which we installed AEM Forms JEE 6.5.18.

The entire installation is successfully running under the root user, but because of security reasons I need to create a specific 'adobe' user to run AEM as a service.

The 'adobe' user is the owner of the entire directory structure where the AEM and jboss files are stored.

Running the jboss server by executing standalone.sh from a session where the 'adobe' user is logged in also works without an issue.

Running the jboss server as a service with the root user also works without issues.

 

But running the jboss server as a service with the 'adobe' user results in an IOException: 

java.io.IOException: Unable to write to deploy directory: /

Naturally the 'adobe' user does not have root (/) access.

 

 

The full error that jboss gives after starting up is:

 

21:24:43,983 ERROR [org.jboss.as.ejb3.invocation] (ServerService Thread Pool -- 102) WFLYEJB0034: Jakarta Enterprise Beans Invocation failed on component EjbTransactionCMTAdapter for method public abstract java.lang.Object com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterLocal.doRequiresNew(com.adobe.idp.dsc.transaction.TransactionDefinition,com.adobe.idp.dsc.transaction.TransactionCallback) throws com.adobe.idp.dsc.DSCException: javax.ejb.TransactionRolledbackLocalException: java.lang.RuntimeException: java.io.IOException: Unable to write to deploy directory: / at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:219) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:392) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:160) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509) at org.jboss.weld.core@3.1.6.Final-redhat-00001//org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:72) at org.jboss.as.weld.common@7.4.10.GA-redhat-00002//org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:89) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories$2.processInvocation(EjbExceptionTransformingInterceptorFactories.java:112) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ee@7.4.10.GA-redhat-00002//org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:60) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:438) at org.wildfly.security.elytron-private@1.15.16.Final-redhat-00001//org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:633) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:57) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53) at org.jboss.as.ee@7.4.10.GA-redhat-00002//org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198) at org.jboss.as.ee@7.4.10.GA-redhat-00002//org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:191) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.as.ejb3@7.4.10.GA-redhat-00002//org.jboss.as.ejb3.security.IdentityInterceptor.processInvocation(IdentityInterceptor.java:49) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422) at org.jboss.invocation@1.6.3.Final-redhat-00001//org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53) at org.jboss.as.ee@7.4.10.GA-redhat-00002//org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:81) at deployment.adobe-livecycle-jboss.ear.adobe-pof.jar//com.adobe.pof.omapi.POFObjectManagerLocal$$$view15.getObjectType(Unknown Source) at deployment.adobe-livecycle-jboss.ear.adobe-pof.jar//com.adobe.pof.omapi.POFObjectManagerLocalEJBAdapter.getNonCachedObjectType(POFObjectManagerLocalEJBAdapter.java:95) at deployment.adobe-livecycle-jboss.ear.adobe-pof.jar//com.adobe.pof.omapi.POFObjectManagerLocalEJBAdapter.getObjectType(POFObjectManagerLocalEJBAdapter.java:91) at deployment.adobe-livecycle-jboss.ear.adobe-pof.jar//com.adobe.pof.omapi.POFObjectManagerAbstractAdapter.resolveObjectType(POFObjectManagerAbstractAdapter.java:321) at deployment.adobe-livecycle-jboss.ear.adobe-pof.jar//com.adobe.pof.omapi.POFObjectManagerAbstractAdapter.newQuery(POFObjectManagerAbstractAdapter.java:211) at deployment.adobe-livecycle-jboss.ear.adobe-dscf.jar//com.adobe.idp.dsc.registry.service.impl.ServiceStoreImpl.getServiceConfigurationsForSpecificationId(ServiceStoreImpl.java:957) at deployment.adobe-livecycle-jboss.ear.adobe-dscf.jar//com.adobe.idp.dsc.registry.service.impl.ServiceRegistryImpl$24.doInTransaction(ServiceRegistryImpl.java:1212) at deployment.adobe-livecycle-jboss.ear.adobe-dscf.jar//com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.execute(EjbTransactionCMTAdapterBean.java:357) at deployment.adobe-livecycle-jboss.ear.adobe-dscf.jar//com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.doRequiresNew(EjbTransactionCMTAdapterBean.java:299)

 

Is there an possibility to configure that deploy directory or is there something missing in the configuration?

 

 

1 reply

Adobe Employee
January 17, 2025

Hi @stevenrymenans ,

It seems there might be an issue with how the JBoss service was configured. Specifically, the JBOSS_HOME environment variable may not be set correctly in the service script.

Could you please review the complete server logs to verify which location JBOSS_HOME is pointing to?

Another potential issue could be related to the temporary directory. You might want to explicitly set the temporary path to a folder where the "adobe" user has full access.

Let me know if this helps!