You are right.

On upcoming 3.7.0/master JDBC the docker image is assembled using JIB
(wich brings in the /root/libs folder)

Prior to this (3.6.1 included) we were running a java command inside
docker, you would need to override the CMD of the container to override
the classpath of the container, as in
https://github.com/apache/james-project/tree/master/server/apps/jpa-app#using-alternative-jdbc-drivers


Example of Java command:

java \
   -javaagent:james-server-jpa-app.lib/openjpa-3.1.2.jar \
   -Dworking.directory=. \
   -Djdk.tls.ephemeralDHKeySize=2048 \
   -Dlogback.configurationFile=conf/logback.xml \
   -cp "james-server-jpa-app.jar:james-server-jpa-app.lib/*:jdbc-driver.jar" \
   org.apache.james.JPAJamesServerMain

Best regards,

I hope it helps, sorry for the misleading pointer...

Benoit

On 04/01/2022 18:06, Bs Serge wrote:
> Hi Benoit,
>
> Still, it does not work, the /root/libs folder does not by default exists
> in the 3.6.1 guice-jpa docker container, so I had to create it but even it
> did not solve the issue coz I still get the same error :
> ClassNotFoundException: org.postgresql.Driver
>
> Below is every directory I have placed the Postgres jar in.
>
> # docker exec -it james_run sh
> #
> # find / -name post*
> /root/james-server-cli.lib/postgresql-42.3.1.jar
> /root/extensions-jars/postgresql-42.3.1.jar
> /root/libs/postgresql-42.3.1.jar
> /root/james-server-jpa-guice.lib/postgresql-42.3.1.jar
> /root/postgresql-42.3.1.jar
> #
>
> I still do not understand what it is going to take for the james jvm to
> pick up the jar file coz I have also used the jcmd tool to inspect the
> class hierarchy in the JVM and there is not any postgres class from the
> postgres jar.
>
> Kindly let me know your thoughts as well.
>
> Best regards,
>
>
> On Tue, Jan 4, 2022 at 3:46 AM Benoit TELLIER <btell...@linagora.com> wrote:
>
>> Hello Serge,
>>
>> Sorry for jumping late on the topic to provide you help.
>>
>> /root/libs is the folder you need to put things in for them to be on the
>> classpath.
>>
>> extension-jars is a folder looked up when loading extensions (mailet,
>> matcher, listeners, webadmin routes etc...) and is not directly on the
>> classpath...
>>
>> I did put an example of setting up JPA app with an external DB:
>>
>> https://github.com/apache/james-project/tree/master/server/apps/jpa-app#using-alternative-jdbc-drivers-with-docker
>>
>>
>> Best regards,
>>
>> Benoit TELLIER
>>
>> On 03/01/2022 20:43, Bs Serge wrote:
>>> # docker exec -it james_run sh
>>> # find -name post*
>>> ./james-server-cli.lib/postgresql-42.3.1.jar
>>> ./extensions-jars/postgresql-42.3.1.jar
>>> ./james-server-jpa-guice.lib/postgresql-42.3.1.jar
>>> ./postgresql-42.3.1.jar
>>> #
>>>
>>> I have included the Postgres jar file in every possible directory but
>>> still, I get the same error : ClassNotFoundException:
>> org.postgresql.Driver
>>> Regards,
>>>
>>>
>>> On Mon, Jan 3, 2022 at 2:03 PM Bs Serge <sergeb...@gmail.com> wrote:
>>>
>>>> Progress update :
>>>>
>>>> I added the Postgres jar file in the 'extensions-jars' folder and I can
>>>> see it being loaded in the classpath in the logs :
>>>>
>>>> 11:41:55.472 [34m[INFO ] [0;39m o.a.j.u.ExtendedClassLoader - Loading
>>>> custom classpath resource /root/./extensions-jars/postgresql-42.3.1.jar
>>>>
>>>> but I'm still getting the same error :
>> java.lang.ClassNotFoundException:
>>>> org.postgresql.Driver
>>>>
>>>> Below is the full logs
>>>>
>>>> Full logs:
>>>>
>> https://paste.0xfc.de/?1df0ef907332046f#56txc688Yicbqgt84VFiaDJ6tvB3joLwoKDmE2wtxkvi
>>>> Any thoughts or comments would be appreciated!
>>>>
>>>> Best regards,
>>>>
>>>> On Fri, Dec 31, 2021 at 7:09 PM Bs Serge <sergeb...@gmail.com> wrote:
>>>>
>>>>> James 3.6.1 Guice+JPA in a docker container
>>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm using this database configuration [1] in james-database.properties
>>>>> file to connect to the Postgres server on the Linux host,
>>>>>
>>>>> I also added the Postgres JDBC driver version 42.3.1 jar file [2] in
>> the
>>>>> `james-server-cli.lib` folder inside the container,
>>>>>
>>>>> and when I restart the docker container, it give this error [3]
>>>>> `ClassNotFoundException: org.postgresql.Driver`
>>>>>
>>>>> I'm wondering what I did wrong
>>>>>
>>>>> Any thoughts or comments would be appreciated!
>>>>>
>>>>> [1]
>>>>>
>> https://paste.0xfc.de/?d1c74b073c748f1a#88WJMDV1v3yg9Zd15zeXoyr3rM4BaCVZB7N5wxzRt9cY
>>>>> [2] https://jdbc.postgresql.org/download.html
>>>>>
>>>>> [3]
>>>>>
>> https://paste.0xfc.de/?bb4c913bb483930a#FcHAonPNN9LQzfzkSFuQHjwTHT92VUdNswByeMjNSHza
>>>>> Best regards,
>>>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
>> For additional commands, e-mail: server-user-h...@james.apache.org
>>
>>

Reply via email to