I am using the image orbeon/orbeon-forms:2025.1-pe and using MySQL server as a database.
orbeon.xml:
<Context path="/orbeon">
<Resource
name="jdbc/mysql"
driverClassName="com.mysql.cj.jdbc.Driver"
auth="Container"
type="javax.sql.DataSource"
initialSize="3"
maxActive="10"
maxIdle="10"
maxWait="30000"
poolPreparedStatements="true"
testOnBorrow="true"
validationQuery="select 1"
username="orbeon"
password="XXXXXX"
url="jdbc:mysql://mysql-instance:3306/orbeon"/>
</Context>properties-prod.xml:
<properties xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:oxf="http://www.orbeon.com/oxf/processors">
<property as="xs:string" name="oxf.crypto.password" value="change-password"/>
<property as="xs:string" name="oxf.fr.persistence.provider.*.*.*" value="mysql"/>
<property as="xs:boolean" name="oxf.fr.persistence.sqlite.active" value="false"/>
</properties>My Dockerfile
FROM orbeon/orbeon-forms:2025.1-pe
USER root
RUN apt-get update && apt-get install -y wget
RUN mkdir -p /tmp/orbeon
WORKDIR /tmp/orbeon
# JDBC driver for MySQL
RUN wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-9.0.0.tar.gz \
&& tar xvfz mysql-connector-j-9.0.0.tar.gz \
&& mv mysql-connector-j-9.0.0/mysql-connector-j-9.0.0.jar /usr/local/tomcat/lib/
# Remove SQLite database and JDBC driver (optional)
RUN rm -f /usr/local/tomcat/webapps/orbeon/WEB-INF/orbeon-demo.sqlite \
&& rm -f /usr/local/tomcat/webapps/orbeon/WEB-INF/lib/sqlite-jdbc-*.jar
# Remove PostgreSQL JDBC driver (optional)
RUN rm -f /usr/local/tomcat/lib/postgresql-*.jar
RUN rm -rf /var/lib/apt/lists/*
# Cleanup
RUN rm -rf /tmp/orbeon
COPY license.xml /usr/local/tomcat/webapps/orbeon/WEB-INF/resources/config/
COPY properties-prod.xml /usr/local/tomcat/webapps/orbeon/WEB-INF/resources/config/
COPY orbeon.xml /usr/local/tomcat/conf/Catalina/localhost/
Schema, tables everything is there in mysql database and from the container database also connected. But when I running the orbeon container I am getting this error:
2026-03-10T22:04:39,083 - 86 - INFO lifecycle - event: {"request": "2", "session": "A550BDA573EE2E7D2E930F13582E1A81", "source": "service", "message": "start: handle"}
2026-03-10T22:04:39,083 - 86 - INFO ProcessorService - Start request: GET /orbeon/fr/
2026-03-10T22:04:39,843 - 86 - ERROR XSLTTransformer - Error at line 1097 of oxf:/apps/fr/components/components.xsl:
An empty sequence is not allowed as the value of variable $attachment-mediatypes
2026-03-10T22:04:39,853 - 86 - ERROR PageFlowControllerProcessor - error caught {controller: "oxf:/apps/fr/page-flow.xml", method: "GET", path: "/fr/"}
2026-03-10T22:04:39,876 - 86 - ERROR PageFlowControllerProcessor -
+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred |
|----------------------------------------------------------------------------------------------------------------------|
|An empty sequence is not allowed as the value of variable $attachment-mediatypes |
|----------------------------------------------------------------------------------------------------------------------|
|Application Call Stack |
|----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/components/components.xsl | |1097|
|oxf:/apps/fr/page-flow.xml |reading page view data output | 260|
|······················································································································|
|element=<page id="fr-landing" path="/fr/" model="landing/landing.xhtml" view="html-view.xpl" default-submission="reque|
|st-parameters.xml">[...]</page> |
|page id=fr-landing |
|view =html-view.xpl |
|----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/html-view.xpl |reading processor output | 34|
|······················································································································|
|element=<p:output name="data" ref="data"/> |
|name =data |
|ref =data |
|----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/unroll-form.xpl |reading processor output | 107|
|······················································································································|
|element=<p:output name="data" ref="data"/> |
|name =data |
|ref =data |
|----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/unroll-form.xpl |reading processor output | 95|
|······················································································································|
|element=<p:output name="data" id="after-components"/> |
|name =data |
|id =after-components |
|----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/components/components.xsl |executing XSLT transformation |1097|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.saxon.trans.XPathException |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.saxon.expr.CardinalityCheckingIterator |typeError | | 120|
|org.orbeon.saxon.expr.CardinalityCheckingIterator |<init> | | 47|
|org.orbeon.saxon.expr.CardinalityChecker |iterate | | 171|
|org.orbeon.saxon.expr.ExpressionTool |evaluate | | 308|
|org.orbeon.saxon.instruct.GlobalVariable |getSelectValue | | 209|
|org.orbeon.saxon.instruct.GlobalVariable |evaluateVariable | | 233|
How to solve this?