Exist: eXist-4.6.0 YAJSW service fails to start because of moved classes

Created on 22 Feb 2019  路  3Comments  路  Source: eXist-db/exist

What is the problem

The eXist-db service installed by installDaemon.sh doesn't start in 4.6.0. It appears that some critical YAJSW classes have moved, but the YAJSW wrapper.conf still points to the old location.

For example, when I install eXist-db 4.6.0 using the Puppet module, the eXist-db service fails to start, and the YAJSW log says

INFO|18118/0|Service eXist-db|19-02-22 09:35:51|error finding main method in class: org.exist.yajsw.Main : org.exist.yajsw.Main
INFO|18118/0|Service eXist-db|19-02-22 09:35:51|java.lang.ClassNotFoundException: org.exist.yajsw.Main
INFO|18118/0|Service eXist-db|19-02-22 09:35:51|no java main method found -> aborting

The error appears to be because org.exist.yajsw.Main has moved from /usr/local/existdb/tools/yajsw/classes in 4.4.0 to /usr/local/existdb/tools/yajsw/target/classes in 4.6.0, but the wrapper.conf still references the old path.

If I add /usr/local/existdb/tools/yajsw/target/classes to the classpath list in /usr/local/existdb/tools/yajsw/conf/wrapper.conf, the service starts as expected.

What did you expect

I expected the eXist-db service installed by installDaemon.sh to start.

Describe how to reproduce or add a test

Install Vagrant and VirtualBox then

git clone https://github.com/mpese/vagrant-exist
cd vagrant-exist
echo "existdb::exist_revision: 'eXist-4.6.0'" >>control/hieradata/common.yaml
vagrant up
vagrant ssh
sudo -i
ps -ef | grep java

You'll see YAJSW attempt to start eXist-db but fail, with errors in /usr/local/exist/tools/yajsw/logs/wrapper.log.

Context information

eXist-db version 4.6.0, installed from https://github.com/eXist-db/exist tag eXist-4.6.0.

[root@mpese-vagrant existdb]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@mpese-vagrant existdb]# uname -a
Linux mpese-vagrant.rit.bris.ac.uk 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@mpese-vagrant existdb]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

Installed using the Puppet module from the Forge, https://forge.puppet.com/jonhallettuob/existdb, as referenced by the Vagrantfile in https://github.com/mpese/vagrant-exist.

There are changes to conf.xml - these can be seen in the Puppet manifests.

triage

Most helpful comment

Brilliant, thanks! In that case, I'll wait for 4.6.1...

All 3 comments

Hi,
A PR has been created and accepted after release of 4.6.0; I hope 4.6.1 will be released anytime soon.

see https://github.com/eXist-db/exist/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed+location+yajsw+classes+

regards
Dannes

So sorry, not sure how I managed to close this!

Brilliant, thanks! In that case, I'll wait for 4.6.1...

Was this page helpful?
0 / 5 - 0 ratings