cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco pdf toolkit

EjikeAlfie
Confirmed Champ
Confirmed Champ

Hi people,

I would like to find out if Alfresco Community 25.2 edition is compatible with pdf-toolkit, and if it is, how do I go about installing and deploying it using Docker?

I look forward to hearing from you.

Thanks

16 REPLIES 16

Hi Fedorow,

I have done the following:

  1. I downloaded the following file from angelborroy/alfresco-pdf-toolkit for ACS7+ compatible: pdf-toolkit-repo-1.4.4-SNAPSHOT.amp and pdf-toolkit-share-1.4.3-SNAPSHOT.amp
  2. I moved them to the various directories, i.e., the amp directory inside the modules directory and inside the share or alfresco directory, as applicable.
  3. I then ran the command:  sudo docker-compose up --build --force-recreate -d
  4. After this, I ran the command: docker-compose up
  5. The alfresco application is up, but when I go to: http://localhost/share/page/modules/deploy. It does not show any of the PDF-toolkit modules like append, extract, and co

Is there something I still need to do or a process I am omitting?

fedorow
Elite Collaborator
Elite Collaborator

okay, what I can notice: 

  1. Learn how docker compose works.
  2. The http://localhost/share/page/modules/deploy must show the long list of pdftoolkit components. If it is not, check the path ./share/modules/amps/ to the pdf-toolkit-share-1.4.3-SNAPSHOT.amp module file. Run 'docker compose build --no-cache share' or in your old version plugin format 'sudo docker-compose build --no-cache share' to install module into share application.
  3. Look into alfresco node browser http://localhost/alfresco/s/admin/admin-nodebrowser , choose 'system://system' store and go to path 'sys:system-registry/module:modules'. If there is no pdf-tookit-repo module check the path ./alfresco/modules/amps/ for the pdf-toolkit-repo-1.4.4-SNAPSHOT.amp file and install it in the same way: 'sudo docker-compose build --no-cache alfresco'.
  4. Restart the compose: sudo docker-compose up -d  -build --force-recreate and check installation again. To make sure you have clean deployment run 'sudo docker-compose down' to stop and delete all components and then start it again 'sudo docker-compose up -d  -build --force-recreate'.

2025-08-18_14-39.png

2025-08-18_14-40.png

Hi Fedorow,

When I go to the: http://localhost/alfresco/s/admin/admin-nodebrowser, this is the image I see:

EjikeAlfie_0-1755522600064.png

I do not see the pdf-toolkit-repo module, but in my terminal, when I check, I see the following:

EjikeAlfie_1-1755522697168.png

EjikeAlfie_2-1755522741539.png

 

 

Hi Fedorow,

This is the code for the Dockerfile  for the "share":

ARG SHARE_TAG
FROM alfresco/alfresco-share:${SHARE_TAG}

ARG TOMCAT_DIR=/usr/local/tomcat

# Server data
ARG SERVER_NAME
ENV SERVER_NAME $SERVER_NAME
ARG HTTP_PORT
ENV HTTP_PORT $HTTP_PORT

# Install modules and addons
RUN mkdir -p $TOMCAT_DIR/amps_share
COPY modules/amps $TOMCAT_DIR/amps_share
COPY modules/jars $TOMCAT_DIR/webapps/share/WEB-INF/lib

# Install Share AMPs (note: using amps_share directory)
RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
$TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force

# Increase default cacheMaxSize
RUN sed -i "s|<Context>|<Context>\n<Resources cacheMaxSize=\"51200\"/> |g" $TOMCAT_DIR/conf/context.xml

# Fix for https://github.com/Alfresco/acs-community-packaging/issues/367 in Share 6.2.0
COPY web-extension/share-config-custom-dev.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension/

Also if I check my Docker desktop, the .amp file in modules is not copied to "amps_share", in /usr/local/tomcat/amps_share:

EjikeAlfie_3-1755523907576.png

 

fedorow
Elite Collaborator
Elite Collaborator

Check you volumes in docker-compose.yml and COPY commands in Dockerfile. Remember what local path and docker container path completely different things.

As I understand you do not use https://github.com/Alfresco/alfresco-docker-installer for your deployment, so the path and names could differs. I can't help you as I do not have your project files.

This command in share Dockerfile installs the modules from $TOMCAT_DIR/amps_share container folder:

# Install Share AMPs (note: using amps_share directory)
RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
$TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force

Make sure you COPY your local amp files to amps_share container directory.

Hi Fedorow,

I am using the  https://github.com/Alfresco/alfresco-docker-installer for my deployment. I have been able to build the pdf-toolkit-share-1.4.3-SNAPSHOT.amp for share, and I can see the deployment modules

EjikeAlfie_0-1755588348101.png

The issue is when I build the pdf-toolkit-repo-1.4.4-SNAPSHOT.amp for alfresco, it throws up errors and corrupts the webapps, you can see the logs below:

EjikeAlfie_1-1755588463075.png

This is my Dockerfile code for alfresco amps below:

ARG ALFRESCO_TAG
FROM alfresco/alfresco-content-repository-community:${ALFRESCO_TAG}

ARG TOMCAT_DIR=/usr/local/tomcat
ARG IMAGEUSERNAME=alfresco

# default user is alfresco (added on the base image alfresco/alfresco-content-repository-community)
# change to root user to be able to install the addons and packages
USER root

# Fix centos mirrors for Alfresco 6.x
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* || true && \
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* || true

# Install modules and addons
RUN mkdir -p $TOMCAT_DIR/amps
COPY modules/amps $TOMCAT_DIR/amps
COPY modules/jars $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib

RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
$TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force

 

# DATABASE
ARG DB
ENV DB $DB

RUN ls -la /etc/yum.repos.d/ && \
((sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* 2>/dev/null) || \
(sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/rocky-* && \
sed -i 's|#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=http://dl.rockylinux.org/$contentdir|g' /etc/yum.repos.d/rocky-*)) || \
(dnf clean all && dnf makecache && dnf update -y)

# Install mysql JDBC driver
RUN if [ "$DB" == "mariadb" ] ; then \
set -x \
&& yum clean all \
&& yum install -y wget \
&& yum clean all \
&& wget -P /tmp/ https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.4/mariadb-java-client-2.7.4.... \
&& cp /tmp/mariadb-java-client-2.7.4.jar $TOMCAT_DIR/lib/ \
&& rm -rf /tmp/mariadb-java-client-2.7.4.jar; \
fi

 

# COMMS
ARG SOLR_COMMS
ENV SOLR_COMMS $SOLR_COMMS

# SSL
ARG TRUSTSTORE_TYPE
ARG TRUSTSTORE_PASS
ARG KEYSTORE_TYPE
ARG KEYSTORE_PASS
ARG CERT_ALIAS

ENV TRUSTSTORE_TYPE=$TRUSTSTORE_TYPE \
TRUSTSTORE_PASS=$TRUSTSTORE_PASS \
KEYSTORE_TYPE=$KEYSTORE_TYPE \
KEYSTORE_PASS=$KEYSTORE_PASS \
CERT_ALIAS=$CERT_ALIAS

# Enable SSL by adding the proper Connector to server.xml
RUN if [ "$SOLR_COMMS" == "https" ] ; then \
sed -i "s/\
[[:space:]]\+<\/Engine>/\n\
<\/Engine>\n\
<Connector port=\"8443\" protocol=\"org.apache.coyote.http11.Http11NioProtocol\"\n\
connectionTimeout=\"20000\" maxThreads=\"150\"\n\
SSLEnabled=\"true\" scheme=\"https\" secure=\"true\"\n\
defaultSSLHostConfigName=\"localhost\">\n\
<SSLHostConfig hostName=\"localhost\" protocols=\"TLSv1.3\"\n\
certificateVerification=\"required\"\n\
truststoreFile=\"\/usr\/local\/tomcat\/keystore\/ssl.truststore\"\n\
truststorePassword=\"${TRUSTSTORE_PASS}\" truststoreType=\"${TRUSTSTORE_TYPE}\">\n\
<Certificate certificateKeystoreFile=\"\/usr\/local\/tomcat\/keystore\/ssl.keystore\"\n\
certificateKeyAlias=\"${CERT_ALIAS}\" type=\"RSA\"\n\
certificateKeystorePassword=\"${KEYSTORE_PASS}\" certificateKeystoreType=\"${KEYSTORE_TYPE}\"\/>\n\
<\/SSLHostConfig>\n\
<\/Connector>/g" ${TOMCAT_DIR}/conf/server.xml; \
fi

This is my docker-compose.yml script:

services:
alfresco:
build:
context: ./alfresco
args:
ALFRESCO_TAG: ${ALFRESCO_CE_TAG}
DB: postgres
SOLR_COMMS: secret
mem_limit: 7488m
depends_on:
postgres:
condition: service_healthy

environment:
JAVA_TOOL_OPTIONS: "
-Dencryption.keystore.type=JCEKS
-Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
-Dencryption.keyAlgorithm=DESede
-Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
-Dmetadata-keystore.password=mp6yc0UD9e
-Dmetadata-keystore.aliases=metadata
-Dmetadata-keystore.metadata.password=oKIWzVdEdA
-Dmetadata-keystore.metadata.algorithm=DESede
"
JAVA_OPTS : '
-Ddb.username=alfresco
-Ddb.password=alfresco
-Ddb.driver=org.postgresql.Driver
-Ddb.url=jdbc:postgresql://postgres:5432/alfresco
-Dalfresco_user_store.adminpassword=209c6174da490caeb422f3fa5a7ae634
-Dsystem.preferred.password.encoding=bcrypt10
-Dsolr.host=solr6
-Dsolr.port=8983
-Dsolr.port.ssl=8983
-Dsolr.secureComms=secret
-Dsolr.baseUrl=/solr
-Dindex.subsystem.name=solr6
-Dsolr.sharedSecret=322ynh37fuk
-Dalfresco.host=${SERVER_NAME}
-Dalfresco.port=80
-Dapi-explorer.url=http://${SERVER_NAME}:80/api-explorer
-Dalfresco.protocol=http
-Dshare.host=${SERVER_NAME}
-Dshare.port=80
-Dshare.protocol=http
-Daos.baseUrlOverwrite=http://${SERVER_NAME}/alfresco/aos
-Dmessaging.broker.url="failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true"
-Ddeployment.method=DOCKER_COMPOSE
-Dcsrf.filter.enabled=false
-Dopencmis.server.override=true
-Dopencmis.server.value=http://${SERVER_NAME}:80
-DlocalTransform.core-aio.url=http://transform-core-aio:8090/
-Dhttpclient.config.transform.connectionRequestTimeout=500000
-Dcsrf.filter.enabled=false
-Dalfresco.restApi.basicAuthScheme=true
-Dauthentication.protection.enabled=false
-XX:+UseG1GC -XX:+UseStringDeduplication
-Dgoogledocs.enabled=false
-Ddev.email.not.sent=true
-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
'
healthcheck:
test:
- CMD
- curl
- -f
- http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/probes/-ready-
interval: 30s
timeout: 3s
retries: 3
start_period: 1m
volumes:
- alf-repo-data:/usr/local/tomcat/alf_data
- alf-repo-logs:/usr/local/tomcat/logs

transform-core-aio:
image: alfresco/alfresco-transform-core-aio:${TRANSFORM_ENGINE_TAG}
restart: on-failure
mem_limit: 2048m
environment:
JAVA_OPTS: "
-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
-Dserver.tomcat.threads.max=12
-Dserver.tomcat.threads.min=4
-Dlogging.level.org.alfresco.transform.common.TransformerDebug=ERROR
-Dlogging.level.org.alfresco.transform=ERROR
-Dlogging.level.org.apache.fontbox.ttf=ERROR
-Dlogging.level.org.apache.pdfbox.cos.COSDocument=ERROR
-Dlogging.level.org.apache.pdfbox.pdfparser=ERROR
-Dlogging.level.org.apache.pdfbox.filter.FlateFilter=ERROR
-Dlogging.level.org.apache.pdfbox.pdmodel.font=ERROR
-Dlogging.level.org.apache.pdfbox.pdmodel.font.PDSimpleFont=FATAL
-Dlogging.level.org.apache.pdfbox.pdmodel.font.PDFont=FATAL
-Dlogging.level.org.apache.pdfbox.pdmodel.font.PDCIDFont=FATAL
"

share:
build:
context: ./share
args:
SHARE_TAG: ${SHARE_TAG}
SERVER_NAME: ${SERVER_NAME}
HTTP_PORT: 80
mem_limit: 1872m
environment:
REPO_HOST: "alfresco"
REPO_PORT: "8080"
CSRF_FILTER_REFERER: "http://localhost:80/.*"
CSRF_FILTER_ORIGIN: "http://localhost:80"
JAVA_OPTS: "
-Dalfresco.context=alfresco
-Dalfresco.protocol=http
-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
"
depends_on:
alfresco:
condition: service_healthy
volumes:
- alf-share-logs:/usr/local/tomcat/logs


postgres:
image: postgres:${POSTGRES_TAG}
mem_limit: 1872m
environment:
- POSTGRES_PASSWORD=alfresco
- POSTGRES_USER=alfresco
- POSTGRES_DB=alfresco
- PGUSER=alfresco
command: "
postgres
-c max_connections=200
-c logging_collector=on
-c log_min_messages=LOG
-c log_directory=/var/log/postgresql"
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- postgres-data:/var/lib/postgresql/data
- postgres-logs:/var/log/postgresql

solr6:
build:
context: ./search
args:
SEARCH_TAG: ${SEARCH_CE_TAG}
SOLR_HOSTNAME: solr6
ALFRESCO_HOSTNAME: alfresco
ALFRESCO_COMMS: secret
CROSS_LOCALE: "true"
DISABLE_CONTENT_INDEXING: "false"
mem_limit: 3744m
environment:
SOLR_JAVA_MEM: "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"
#Solr needs to know how to register itself with Alfresco
SOLR_ALFRESCO_HOST: "alfresco"
SOLR_ALFRESCO_PORT: "8080"
#Alfresco needs to know how to call solr
SOLR_SOLR_HOST: "solr6"
SOLR_SOLR_PORT: "8983"
#Create the default alfresco and archive cores
SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive"
SOLR_OPTS: "
-XX:-UseLargePages
-Dalfresco.secureComms.secret=322ynh37fuk
"
depends_on:
alfresco:
condition: service_healthy
volumes:
- solr-data:/opt/alfresco-search-services/data


activemq:
image: alfresco/alfresco-activemq:${ACTIVEMQ_TAG}
mem_limit: 1g
volumes:
- activemq-data:/opt/activemq/data

content-app:
image: alfresco/alfresco-content-app:${ACA_TAG}
mem_limit: 256m
environment:
APP_BASE_SHARE_URL: "http://${SERVER_NAME}:80/#/preview/s"
APP_CONFIG_PLUGIN_PROCESS_SERVICE: false
depends_on:
alfresco:
condition: service_healthy


# HTTP proxy to provide HTTP Default port access to services
# SOLR API and SOLR Web Console are protected to avoid unauthenticated access
proxy:
image: nginx:stable-alpine
mem_limit: 128m
depends_on:
- alfresco
- solr6
- share
- content-app
volumes:
- ./config/nginx.conf:/etc/nginx/nginx.conf
- ./config/nginx.htpasswd:/etc/nginx/conf.d/nginx.htpasswd
ports:
- ${BIND_IP_NGINX:-0.0.0.0}:80:80

 

 

 

 


volumes:
alf-repo-data:
activemq-data:
alf-repo-logs:
alf-share-logs:
postgres-data:
postgres-logs:
solr-data:

Is there some compatibility issue with Alfresco Community Edition 25.2 and pdf-toolkit-repo-1.4.4-SNAPSHOT.amp ?
This is the directory structure for addons I am using:

EjikeAlfie_2-1755588799149.png

 

 

Hi Fedorow,

These are all the logs:
ejike@BlueFlame:~/alfresco-docker-compose$ docker-compose logs alfresco | tail -50
alfresco-1 | java.base@17.0.15/jdk.internal.misc.Unsafe.park(Native Method)
alfresco-1 | java.base@17.0.15/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
alfresco-1 | java.base@17.0.15/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
alfresco-1 | java.base@17.0.15/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
alfresco-1 | java.base@17.0.15/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
alfresco-1 | java.base@17.0.15/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1630)
alfresco-1 | java.base@17.0.15/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
alfresco-1 | org.alfresco.repo.event2.EnqueuingEventSender.lambda$1(EnqueuingEventSender.java:106)
alfresco-1 | org.alfresco.repo.event2.EnqueuingEventSender$$Lambda$725/0x00007f487888d8a8.run(Unknown Source)
alfresco-1 | java.base@17.0.15/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
alfresco-1 | java.base@17.0.15/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
alfresco-1 | java.base@17.0.15/java.lang.Thread.run(Thread.java:840)
alfresco-1 | 19-Aug-2025 06:59:55.433 SEVERE [main] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [alfresco] created a ThreadLocal with key of type [org.alfresco.repo.template.QNameAwareObjectWrapper$1] (value [org.alfresco.repo.template.QNameAwareObjectWrapper$1@3285eb2c]) and a value of type [org.alfresco.repo.template.QNameAwareObjectWrapper$1$1] (value [org.alfresco.repo.template.QNameAwareObjectWrapper$1$1@1422398113(2.3.0, useAdaptersForContainers=false, forceLegacyNonListCollections=true, iterableSupport=false, domNodeSupport=true, jythonSupport=trueexposureLevel=1, exposeFields=false, preferIndexedReadMethod=true, treatDefaultMethodsAsBeanMembers=false, sharedClassIntrospCache=none, ...)]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
alfresco-1 | 19-Aug-2025 06:59:55.434 SEVERE [main] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [alfresco] created a ThreadLocal with key of type [org.alfresco.repo.template.QNameAwareObjectWrapper$1] (value [org.alfresco.repo.template.QNameAwareObjectWrapper$1@2ae2740d]) and a value of type [org.alfresco.repo.template.QNameAwareObjectWrapper$1$1] (value [org.alfresco.repo.template.QNameAwareObjectWrapper$1$1@925050614(2.3.0, useAdaptersForContainers=false, forceLegacyNonListCollections=true, iterableSupport=false, domNodeSupport=true, jythonSupport=trueexposureLevel=1, exposeFields=false, preferIndexedReadMethod=true, treatDefaultMethodsAsBeanMembers=false, sharedClassIntrospCache=none, ...)]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
alfresco-1 | 19-Aug-2025 06:59:55.435 SEVERE [main] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [alfresco] created a ThreadLocal with key of type [org.alfresco.repo.template.QNameAwareObjectWrapper$1] (value [org.alfresco.repo.template.QNameAwareObjectWrapper$1@236a67a9]) and a value of type [org.alfresco.repo.template.QNameAwareObjectWrapper$1$1] (value [org.alfresco.repo.template.QNameAwareObjectWrapper$1$1@759998226(2.3.0, useAdaptersForContainers=false, forceLegacyNonListCollections=true, iterableSupport=false, domNodeSupport=true, jythonSupport=trueexposureLevel=1, exposeFields=false, preferIndexedReadMethod=true, treatDefaultMethodsAsBeanMembers=false, sharedClassIntrospCache=none, ...)]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
alfresco-1 | 19-Aug-2025 06:59:55.436 SEVERE [main] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [alfresco] created a ThreadLocal with key of type [java.lang.ThreadLocal.SuppliedThreadLocal] (value [java.lang.ThreadLocal$SuppliedThreadLocal@1437fcaa]) and a value of type [org.alfresco.util.CachingDateFormat] (value [yyyy-MM-dd]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
alfresco-1 | 19-Aug-2025 06:59:55.436 SEVERE [main] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [alfresco] created a ThreadLocal with key of type [java.lang.ThreadLocal.SuppliedThreadLocal] (value [java.lang.ThreadLocal$SuppliedThreadLocal@3a0d7c4c]) and a value of type [org.alfresco.util.transaction.TransactionSupportUtil.ResourcesHolder] (value [org.alfresco.util.transaction.TransactionSupportUtil$ResourcesHolder@4a2a038b]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
alfresco-1 | 19-Aug-2025 06:59:55.446 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/alfresco] has finished in [33,942] ms
alfresco-1 | 19-Aug-2025 06:59:55.446 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/api-explorer]
alfresco-1 | 19-Aug-2025 06:59:55.586 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
alfresco-1 | 19-Aug-2025 06:59:55.673 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/api-explorer] has finished in [227] ms
alfresco-1 | 19-Aug-2025 06:59:55.673 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/_vti_bin]
alfresco-1 | 19-Aug-2025 06:59:55.825 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
alfresco-1 | 19-Aug-2025 06:59:55.830 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/_vti_bin] has finished in [156] ms
alfresco-1 | 19-Aug-2025 06:59:55.830 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/ROOT]
alfresco-1 | 19-Aug-2025 06:59:55.836 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin Match [Context] failed to set property [debug] to [100]
alfresco-1 | 19-Aug-2025 06:59:55.969 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
alfresco-1 | 19-Aug-2025 06:59:55.973 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [143] ms
alfresco-1 | 19-Aug-2025 06:59:55.979 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
alfresco-1 | 19-Aug-2025 06:59:56.007 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [33386] milliseconds
alfresco-1 | 19-Aug-2025 07:00:00.006 INFO [QuartzScheduler_QuartzSchedulerThread] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [org.quartz.ExecuteInJTATransaction]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
alfresco-1 | java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.quartz.ExecuteInJTATransaction]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1400)
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1388)
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1222)
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1189)
alfresco-1 | at org.quartz.ee.jta.JTAAnnotationAwareJobRunShellFactory.createJobRunShell(JTAAnnotationAwareJobRunShellFactory.java:100)
alfresco-1 | at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:402)
alfresco-1 | Exception in thread "QuartzScheduler_QuartzSchedulerThread" java.lang.NoClassDefFoundError: org/quartz/ExecuteInJTATransaction
alfresco-1 | at org.quartz.ee.jta.JTAAnnotationAwareJobRunShellFactory.createJobRunShell(JTAAnnotationAwareJobRunShellFactory.java:100)
alfresco-1 | at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:402)
alfresco-1 | Caused by: java.lang.ClassNotFoundException: Illegal access: this web application instance has been stopped already. Could not load [org.quartz.ExecuteInJTATransaction]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1390)
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1222)
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1189)
alfresco-1 | ... 2 more
alfresco-1 | Caused by: java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [org.quartz.ExecuteInJTATransaction]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1400)
alfresco-1 | at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1388)
alfresco-1 | ... 4 more