EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
<== Date ==> <== Thread ==>

Subject: Re: Installation of EPICS archiver on a single Centos7 machine
From: Andrea Celentano via Tech-talk <tech-talk at aps.anl.gov>
To: Jörn Dreyer <j.dreyer at hzdr.de>, tech-talk at aps.anl.gov
Date: Fri, 7 Feb 2025 16:01:11 +0100
Dear Jorn,

thanks. Indeed, I made a mistake and I downloaded the .tar.gz file, not the binary .jar file for mysql-connector.

Now everything goes forward, but in the log file "catalina.out" I see the following error.

May I ask for an advice?

Thanks

Andrea

2025-02-07 15:59:25,238 FATAL [main] config.DefaultConfigService (DefaultConfigService.java:293) - Exception loading the appliance properties file java.lang.NullPointerException: Cannot invoke "java.net.URL.toString()" because the return value of "java.lang.ClassLoader.getResource(String)" is null     at org.epics.archiverappliance.config.DefaultConfigService.initialize(DefaultConfigService.java:274) [classes/:?]     at org.epics.archiverappliance.config.ArchServletContextListener.contextInitialized(ArchServletContextListener.java:47) [classes/:?]     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4682) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5150) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1849) [catalina.jar:9.0.20]     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.20]     at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) [?:?]     at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:929) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367) [catalina.jar:9.0.20]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.20]     at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) [?:?]     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.startup.Catalina.start(Catalina.java:633) [catalina.jar:9.0.20]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344) [bootstrap.jar:9.0.20]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
    at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:241) [commons-daemon.jar:1.1.0] 2025-02-07 15:59:25,252 INFO  [main] config.DefaultConfigService (DefaultConfigService.java:299) - Using the default key mapping class 2025-02-07 15:59:25,253 FATAL [main] config.ArchServletContextListener (ArchServletContextListener.java:50) - Exception initializing config service org.epics.archiverappliance.config.exception.ConfigException: The appliance archiver cannot function without knowning the characters that separate the components of a PV nam
e
    at org.epics.archiverappliance.config.ConvertPVNameToKey.initialize(ConvertPVNameToKey.java:82) ~[classes/:?]     at org.epics.archiverappliance.config.DefaultConfigService.initialize(DefaultConfigService.java:301) ~[classes/:?]     at org.epics.archiverappliance.config.ArchServletContextListener.contextInitialized(ArchServletContextListener.java:47) [classes/:?]     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4682) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5150) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1849) [catalina.jar:9.0.20]     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.20]     at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) [?:?]     at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576) [catalina.jar:9.0.20]     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:929) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377) [catalina.jar:9.0.20]     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367) [catalina.jar:9.0.20]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.20]     at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) [?:?]     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932) [catalina.jar:9.0.20]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.20]     at org.apache.catalina.startup.Catalina.start(Catalina.java:633) [catalina.jar:9.0.20]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344) [bootstrap.jar:9.0.20]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]

On 2/7/25 14:58, Jörn Dreyer wrote:
Hi Andrea,

yes this error is well known. I stumbled across that some years ago when I did my first archiver installation.
You forgot to download and install the mysql-connector jar file relevant for your mysql version.
It needs to be placed in the tomcat folder. Check the documentation of the archiver for the exact location.
Hope this helps,

Jörn

Am Freitag, 7. Februar 2025, 14:50:57 Mitteleuropäische Normalzeit schrieb Andrea Celentano via Tech-talk:
Dear colleagues,

I am currently developing the slow-controls system for a small-scale
experiment (~ 100 PVs), and I'd like to use the EPICS archiver to
properly track them.

I am using the following setup:

* Centos7 machine (I cannot change this at the moment)

* Java JDK version 16.0.2

* Archiver release 2.0.5
(https://urldefense.us/v3/__https://github.com/archiver-appliance/epicsarchiverap/releases/tag/2.0.5__;!!G_uCfscf7eWS!dfP3pgsViV5i5uqOcqz-MWHrFko78Ypy28FydNixfzs_o8UBmRRyBJPjpqZGCwptaFyl7HX0PwxiW6n-WE7VLlepoB0sdgprJNw$ )

* Tomcat version apache-tomcat-9.0.20

* mysql connector version 5.1.21

Following the guide
(https://urldefense.us/v3/__https://epicsarchiver.readthedocs.io/en/latest/sysadmin/installguide.html__;!!G_uCfscf7eWS!dfP3pgsViV5i5uqOcqz-MWHrFko78Ypy28FydNixfzs_o8UBmRRyBJPjpqZGCwptaFyl7HX0PwxiW6n-WE7VLlepoB0seOqUtEE$ ),
I am using the script "single_machine_install.sh". Everything goes well,
I obtain the script "sampleStartup.sh" in the folder where Tomcat
Instances are located.

If I execute it, and then I open the file "mgmt/logs/catalina.err", I
see the following error. and the archiver does not start.

...

java.sql.SQLException: Unable to load class: com.mysql.jdbc.Driver from
ClassLoader:java.net.URLClassLoader@4617c264;ClassLoader:ParallelWebappClassLoader
    context: mgmt
    delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@4617c264

      at
org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:292)
      at
org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:212)
      at
org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:744)
      at
org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:676)
      at
org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:483)
      at
org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154)
      at
org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)
      at
org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107)
      at
org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:560)
      at
org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:244)
      at
org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:94)
      at
java.naming/javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:341)
      at org.apache.naming.NamingContext.lookup(NamingContext.java:840)
      at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
      at org.apache.naming.NamingContext.lookup(NamingContext.java:827)
      at org.apache.naming.NamingContext.lookup(NamingContext.java:173)
      at
org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1017)
      at
org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:557)
      at
org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:253)
      at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
      at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5048)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713)
      at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
      at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
      at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
      at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1849)
      at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
      at
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
      at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773)
      at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
      at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
      at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
      at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
      at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
      at
org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
      at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:929)
      at
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377)
      at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
      at
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
      at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902)
      at
org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at
org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:932)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
      at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
      at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
      at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344)
      at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
      at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
      at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      at
org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:241)
Caused by: java.lang.ClassNotFoundException: Unable to load class:
com.mysql.jdbc.Driver from
ClassLoader:java.net.URLClassLoader@4617c264;ClassLoader:ParallelWebappClassLoader
...

Has anyone ever seen this?

Thanks,

Andrea









References:
Installation of EPICS archiver on a single Centos7 machine Andrea Celentano via Tech-talk
Re: Installation of EPICS archiver on a single Centos7 machine Jörn Dreyer via Tech-talk

Navigate by Date:
Prev: Re: Installation of EPICS archiver on a single Centos7 machine Wang, Lin via Tech-talk
Next: Re: Installation of EPICS archiver on a single Centos7 machin Shankar, Murali via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
Navigate by Thread:
Prev: Re: Installation of EPICS archiver on a single Centos7 machine Jörn Dreyer via Tech-talk
Next: Re: Installation of EPICS archiver on a single Centos7 machine Wang, Lin via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  <2025
ANJ, 07 Feb 2025 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·