tomcat9 not correctly installed on ubuntu 20.04 - tomcat9

yesterday i installed tomcat9 on my ubuntu 20.04, but when i try to start it from cataline.sh which is on the bin folder under /usr/share/tomcat9 i got the followin error:
Using CATALINA_BASE: /usr/share/tomcat7
Using CATALINA_HOME: /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
touch: cannot touch `/usr/share/tomcat7/logs/catalina.out': No such file or directory
./catalina.sh: 389: ./catalina.sh: cannot create /usr/share/tomcat7/logs/catalina.out: Directory nonexistent
so i started it normally using the sudo service tomcat9 start command and it worked but then for some reason i removed tomcat9 with sudo apt remove tomcat9 and sudo apt remove tomcat9-admin and tried to install it again following the same steps : tutorial
but since then the service doesn't start and i get this error
:
Jun 5, 2013 12:23:21 PM org.apache.catalina.startup.Catalina start
SEVERE: Cannot start server. Server instance is not configured.
even in /usr/share/tomcat9 i'm no more able to find the bin folder, any
suggestion ?

Fixing the same issue in Tomcat9
I used apt-get to install and then re-install tomcat9 after doing a complete removal. Similarly, it didn't install the /bin and /lib directories in /usr/share/tomcat9
When I switched to using apt versus apt-get, it installed the directories.
If you originally used apt-get
*Include the --reinstall flag if you already have it installed
sudo apt install --reinstall tomcat9
If you originally used apt
*Include the --reinstall flag if you already have it installed
sudo apt-get install --reinstall tomcat9

Related

Cannot install Icinga Web 2 on CentOS 8

I have installed Icinga2 on my server, which is running CentOS 8. However, I run into problems when I try and install Icinga Web 2.
When I try and run the command yum -y install icingaweb2 icingacli, CentOS cannot find the packages. The following output is given:
Last metadata expiration check: 0:01:04 ago on Sat 16 Nov 2019 23:22:22 NZDT.
No match for argument: icingaweb2
No match for argument: icingacli
Error: Unable to find a match
It also cannot find the packages centos-release-scl and icingaweb2-selinux.
I've added the Icinga repositories to CentOS manually, including EPEL relase, and they are showing in the yum.repos.d folder. But every time I try and install Icinga Web 2, whether with yum or dnf, I get the same error. I've tried dnf makecache and yum makecache and have updated the packages, but nothing seems to work.
What is going on here?
For install icinga via package management you should add this repo: https://packages.icinga.com/epel/

how to install php 5.6 on ubuntu 16.04 running Virtualmin Control Panel

i have tried a number of times to get php 5.6 working on ubuntu 16.04
I keep getting a server error 500 when trying to browse http:/domain.com/phpinfo.php to check which version of php is active (server also has 7.0, 7.1, & 7.2)
I also have same error when attempting to run php 7.1 (7.0 & 7.2 are working no problems and i have websites running on the virtualmin server.
I have looked at various answers about this kind of thing here but in all honesty, the answers are often so broken and different i cant find a single procedure that is reliable and works.
Anyone help with this?
For example, will the following ispconfig 3 tutorial, which installs php5.6 in /opt directory, work with virtualmin? ( https://www.howtoforge.com/tutorial/how-to-install-php-5-6-on-ubuntu-16-04/ )
My assumption is that the above tutorial will work and i just need to tell virtualmin where the php 5.6 binaries are located in /opt/? ( see this thread... https://www.virtualmin.com/node/40004 )
By default, Ubuntu 16.04 server assigns the PHP 7.07 or higher version. If you want to allow/assign PHP 5.6 on your server then you will have to install it manually from the following command:
Step 1: Step 1: Update Apt-Get
Linux command: apt-get update && apt-get upgrade.
Step 2: Install PHP 5.6
Install the PHP5.6 repository with these two commands.
Linux command:
apt-get install -y software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install -y php5.6
Step 3: Switch PHP 7.0 to PHP 5.6
Switch from PHP 7.0 to PHP 5.6 while restarting Apache to recognize the change:
a2dismod php7.0 ; a2enmod php5.6 ; service apache2 restart
Verify that PHP 5.6 is running on Apache by putting up a PHP info page. To do so, use the code below in a file named as infopage.php and upload it to the /var/www/html directory.
<? phpinfo(); ?>
First add the ppa:ondrej/php repository:
sudo -s
apt-get update
apt-get install -y software-properties-common
add-apt-repository ppa:ondrej/php
If at this point it throws a CPG error like:
Reading package lists... Done
W: GPG error: http://ppa.launchpad.net/ondrej/php/ubuntu xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY <THE_KEY>
W: The repository 'http://ppa.launchpad.net/ondrej/php/ubuntu xenial InRelease' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
..pay attention in the 2nd line showing THE_KEY, then solve with:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <THE_KEY>
Finally:
apt-get update
apt-get install -y php5.6
php -v

error while loading shared libraries: libfontconfig.so.1 on cent os

I am newbie for Cent os. Installing phantomjs on Cent os. Followed below steps but still facing issue.
Steps :
curl -O https://phantomjs.googlecode.com/files/phantomjs-1.9.1-linux-i686.tar.bz2.
tar xvf phantomjs-1.9.1-linux-i686.tar.bz2
cp phantomjs-1.9.1-linux-i686/bin/phantomjs /usr/local/bin
sudo yum install freetype
sudo yum install fontconfig
Above all steps completed successfully but when I try to hit phantomjs, it shows error "phantomjs: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory."
Thanks in advance.
Just make sure you successfully run
yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++
and then try to install as usual.
To remove this error.
# sudo yum install fontconfig
If you are still facing the error, Run
# sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
Note :
If you are using ubuntu or debian, use apt-get install to install this package.
centos, NodeJS, html-pdf
sudo yum install fontconfig (worked for me)

yum install mongodb 3.2 fails

I am trying to install mongodb 3.2 on a CentOS 7 machine and facing issues in locating the packages.
I have updated the repo file as per the documentation:
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1
When running sudo yum install mongodb-org I am getting this error:
[centos#ip-10-24-1-228 ~]$ sudo yum install mongodb-org
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.osuosl.org
* epel: linux.mirrors.es.net
* extras: mirror.lax.hugeserver.com
* updates: mirror.hmc.edu
No package mongodb-org available.
Error: Nothing to do
Why do I get this message?
You need to configure the package management system (yum).
Create a /etc/yum.repos.d/mongodb.repo file to hold the following configuration information for the MongoDB repository:
If you have a 64bit system, use the following config:
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
32bit isn't recommended for production deployments, but you may use:
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/
gpgcheck=0
enabled=1
When you install the packages, you choose whether to install the current release or a previous one. This step provides the commands for both.
To install the latest stable version of MongoDB, run:
sudo yum install mongodb-org
To install a specific release of MongoDB, specify each component package individually and append to it the version number to the package name, as in the following example that installs the 3.2.0 release:
yum install mongodb-org-3.2.0 mongodb-org-server-3.2.0 mongodb-org-shell-3.2.0 mongodb-org-mongos-3.2.0 mongodb-org-tools-3.2.0
If you are still stuck, following this carefully might be helpful.
I figured out what was my problem. It was in my yum.conf file
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
Once I commented out this line from yum.conf, everything went fine.
You should know that this URL https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ is not working anymore.
Go to http://repo.mongodb.org/yum/redhat/ and download mongodb-org.repo file.
Configure the package management system (yum), copy mongodb-org.repo to /etc/yum.repos.d/, so that you can install MongoDB directly, using yum.
Install the MongoDB packages and associated tools.
sudo yum install -y mongodb-org mongodb-org-server
Unfortunatelly mongodb website documentation suggests using https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/, but this is wrong way.
This is a more recent version of Idos answer from Install MongoDB Community Edition on Red Hat Enterprise or CentOS Linux.
Configure the package management system (yum).
Create a /etc/yum.repos.d/mongodb.repo file so that you can install MongoDB directly, using yum.
For MongoDB 3.6
Use the following repository file:
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
For versions of MongoDB earlier than 3.6
To install the packages from an earlier release series such as 3.4, you can specify the release series in the repository configuration. For example, to restrict your system to the 3.4 release series, create a /etc/yum.repos.d/mongodb.repo file to hold the following configuration information for the MongoDB 3.4 repository:
[mongodb-org-3.4]
name=MongoDB 3.4 Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1
You can find .repo files for each release in the repository itself. Remember that odd-numbered minor release versions (e.g. 3.5) are development versions and are unsuitable for production use.
Install the MongoDB packages.
To install the latest stable version of MongoDB, issue the following command:
sudo yum install -y mongodb-org
To install a specific release of MongoDB, specify each component package individually and append the version number to the package name, as in the following example:
sudo yum install -y mongodb-org-3.6.4 mongodb-org-server-3.6.4 mongodb-org-shell-3.6.4 mongodb-org-mongos-3.6.4 mongodb-org-tools-3.6.4
When you install the packages, you choose whether to install the current release or a previous one. This step provides the commands for both.
Start MongoDB.
You can start the mongod process by issuing the following command:
sudo service mongod start
I know this issue is old and more than 2 years but I have received this error recently in Mongo DB 4.0
I have checked my yum.conf by
vi /etc/yum.conf yum.conf
and there was one line with the following.
exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* **mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools** mydns* nsd* p0f php* proftpd* pure-ftpd* spamassassin* squirrelmail*
Removed the
mod_ssl* mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
and changed it to
exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* nsd* p0f php* proftpd* pure-ftpd* spamassassin* squirrelmail*
This has fixed my issue and should fix yours.
Hello Friend i will resoled problem
First Clean old data
sudo yum erase $(rpm -qa | grep mongod)
sudo rm -rf /etc/yum.repos.d/mongod*
sudo yum clean all
again create repo file new
/etc/yum.repos.d/mongodb-enterprise-4.4.repo
file so that you can install MongoDB enterprise directly using yum:
[mongodb-enterprise-4.4]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/4.4/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
Install MongoDB Enterprise 4.4.
Issue the following command:
sudo yum install -y mongodb-enterprise
Install a specific release of MongoDB Enterprise.
To install a specific release, you must specify each component package individually along with the version number, as in the following example:
sudo yum install -y mongodb-enterprise-4.4.1 mongodb-enterprise-server-4.4.1 mongodb-enterprise-shell-4.4.1 mongodb-enterprise-mongos-4.4.1 mongodb-enterprise-tools-4.4.1
If you only install mongodb-enterprise=4.4.1 and do not include the component packages, the latest version of each MongoDB package will be installed regardless of what version you specified.
Pin a specific version of MongoDB Enterprise.
Although you can specify any available version of MongoDB Enterprise, yum upgrades the packages when a newer version becomes available. To prevent unintended upgrades, pin the package by adding the following exclude directive to your /etc/yum.conf file:
exclude=mongodb-enterprise,mongodb-enterprise-server,mongodb-enterprise-shell,mongodb-enterprise-mongos,mongodb-enterprise-tools
By default, MongoDB runs using the mongod user account and uses the following default directories:
/var/lib/mongo (the data directory)
/var/log/mongodb (the log directory)
➤ If you installed via the package manager,
The default directories are created, and the owner and group for these directories are set to mongod.
➤ If you installed by downloading the tarballs,
The default MongoDB directories are not created. To create the MongoDB data and log directories:
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
sudo systemctl daemon-reload
sudo systemctl start mongod
Any Error Come than ones Clean old
Option:- not create socket file than /tmp
in old socket file remove
sudo systemctl daemon-reload
sudo systemctl start mongod
sudo service mongod status
more info to read https://docs.mongodb.com/manual/tutorial/install-mongodb-enterprise-on-red-hat/
https://www.mysterydata.com/how-to-install-mongodb-4-0-on-centos-7-rhel-7/
#nikolai.serdiuk seems to be correct. The baseurl provided in Mongo's Documentation doesn't seem to be functional. Replace that step with this instead (1):
yum-config-manager --add-repo http://repo.mongodb.org/yum/redhat/mongodb-org.repo
and then continue on with (2):
sudo yum install -y mongodb-org
Hope this helps.
Create a mongodb-org.repo file
sudo vi /etc/yum.repos.d/mongodb-org.repo
Add following content
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-
org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
Then execute sudo yum install mongodb-org
Reference:docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
first you have to create repo in your redhat system.
cd /etc/yum.repos.d/mongodb-org.repo
and Enter i, and copy-past this.
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
and save it like- enter ctrl + : and enter : + qw
and run this command
yum install mongodb-org
Check and remove old version mongodb
yum list installed mongodb.x86_64
yum remove mongodb.x86_64
It helps
Hello Friend i will resoled problem
First Clean old data
sudo rm -rf /etc/yum.repos.d/mongod*
sudo yum clean all
again create repo file new
/etc/yum.repos.d/mongodb-enterprise-4.4.repo
file so that you can install MongoDB enterprise directly using yum:
[mongodb-enterprise-4.4]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/4.4/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
Install MongoDB Enterprise 4.4.
Issue the following command:
sudo yum install -y mongodb-enterprise
Install a specific release of MongoDB Enterprise.
To install a specific release, you must specify each component package individually along with the version number, as in the following example:
sudo yum install -y mongodb-enterprise-4.4.1 mongodb-enterprise-server-4.4.1 mongodb-enterprise-shell-4.4.1 mongodb-enterprise-mongos-4.4.1 mongodb-enterprise-tools-4.4.1
If you only install mongodb-enterprise=4.4.1 and do not include the component packages, the latest version of each MongoDB package will be installed regardless of what version you specified.
Pin a specific version of MongoDB Enterprise.
Although you can specify any available version of MongoDB Enterprise, yum upgrades the packages when a newer version becomes available. To prevent unintended upgrades, pin the package by adding the following exclude directive to your /etc/yum.conf file:
exclude=mongodb-enterprise,mongodb-enterprise-server,mongodb-enterprise-shell,mongodb-enterprise-mongos,mongodb-enterprise-tools
By default, MongoDB runs using the mongod user account and uses the following default directories:
/var/lib/mongo (the data directory)
/var/log/mongodb (the log directory)
➤ If you installed via the package manager,
The default directories are created, and the owner and group for these directories are set to mongod.
➤ If you installed by downloading the tarballs,
The default MongoDB directories are not created. To create the MongoDB data and log directories:
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
sudo systemctl daemon-reload
sudo systemctl start mongod
Any Error Come than ones Clean old
Option:- not create socket file than /tmp
in old socket file remove
sudo systemctl daemon-reload
sudo systemctl start mongod
sudo service mongod status
This command
yum-config-manager --add-repo http://repo.mongodb.org/yum/redhat/mongodb-org.repo
will create the repo as above suggested. Then it will work.
Follow the below steps to install MongoDB on CentOS
Add MongoDB yum repository
# vi /etc/yum.repos.d/mongodb.repo
Enter i and paste the below lines in the file
[MongoDB]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1
Press esc to save the vim file then enter :wq to quit the saved file.
3.Install MongoDB server
yum install mongodb-org
Start MongoDB Service
# systemctl start mongod.service # For CentOS 7
# service mongod restart # For CentOS 6/5
Check Mongod version
mongod --version
Referance: Installing MongoDB on CentOS

What does "The APR based Apache Tomcat Native library was not found" mean?

I am using Tomcat 7 in Eclipse on Windows. When starting Tomcat, I am getting the following info message:
The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path
What does this mean and how can I provide the APR library?
It means exactly what it says: "The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path"
The library referred to is bundled into an OS specific dll (tcnative-1.dll) loaded via JNI. It allows tomcat to use OS functionalities not provided in the Java Runtime (such as sendfile, epoll, OpenSSL, system status, etc.). Tomcat will run just fine without it, but for some use cases, it will be faster with the native libraries.
If you really want it, download the tcnative-1.dll (or libtcnative.so for Linux) and put it in the bin folder, and add a system property to the launch configuration of the tomcat server in eclipse.
-Djava.library.path=c:\dev\tomcat\bin
Unless you're running a production server, don't worry about this message. This is a library which is used to improve performance (on production systems). From Apache Portable Runtime (APR) based Native library for Tomcat:
Tomcat can use the Apache Portable Runtime to provide superior
scalability, performance, and better integration with native server
technologies. The Apache Portable Runtime is a highly portable library
that is at the heart of Apache HTTP Server 2.x. APR has many uses,
including access to advanced IO functionality (such as sendfile, epoll
and OpenSSL), OS level functionality (random number generation, system
status, etc), and native process handling (shared memory, NT pipes and
Unix sockets).
On RHEL Linux just issue:
yum install tomcat-native.x86_64
/Note:depending on Your architecture 64bit or 32bit package may have different extension/
That is all. After that You will find in the log file next informational message:
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
All operations will be noticeably faster than before.
Installation the native library on Ubuntu server with:
sudo apt-get install libtcnative-1
If that does not work tomcat-native needs to be installed
Install Oracle java7:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
sudo apt-get install oracle-java7-set-default
Install tomcat apr:
wget http://apache.mirror.anlx.net//apr/apr-1.5.0.tar.gz
tar zxvf apr-1.5.0.tar.gz
rm apr-1.5.0.tar.gz
cd apr-1.5.0
sudo ./configure
sudo make
sudo make install
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/local/apr/lib'
Install tomcat tomcat-native:
wget http://mirrors.ukfast.co.uk/sites/ftp.apache.org//tomcat/tomcat-connectors/native/1.1.29/source/tomcat-native-1.1.29-src.tar.gz
tar zxvf tomcat-native-1.1.29-src.tar.gz
rm tomcat-native-1.1.29-src.tar.gz
cd tomcat-native-1.1.29-src/jni/native
JAVA_HOME=/usr/lib/jvm/java-7-oracle
sudo ./configure --with-apr=/usr/local/apr --with-java-home=$JAVA_HOME
sudo make
sudo make install
I just went through this and configured it with the following:
Ubuntu 16.04
Tomcat 8.5.9
Apache2.4.25
APR 1.5.2
Tomcat-native 1.2.10
Java 8
These are the steps i used based on the older posts here:
Install package
sudo apt-get update
sudo apt-get install libtcnative-1
Verify these packages are installed
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install openssl
Install package
sudo apt-get install libssl-dev
Install and compile Apache APR
cd /opt/tomcat/bin
sudo wget http://apache.mirror.anlx.net//apr/apr-1.5.2.tar.gz
sudo tar -xzvf apr-1.5.2.tar.gz
cd apr-1.5.2
sudo ./configure
sudo make
sudo make install
verify installation
cd /usr/local/apr/lib/
ls
you should see the compiled file as
libapr-1.la
Download and install Tomcat Native source package
cd /opt/tomcat/bin
sudo wget https://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.10/source/tomcat-native-1.2.10-src.tar.gz
sudo tar -xzvf tomcat-native-1.2.10-src.tar.gz
cd tomcat-native-1.2.10-src/native
verify JAVA_HOME
sudo pico ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
source ~/.bashrc
sudo ./configure --with-apr=/usr/local/apr --with-java-home=$JAVA_HOME
sudo make
sudo make install
Edit the /opt/tomcat/bin/setenv.sh file with following line:
sudo pico /opt/tomcat/bin/setenv.sh
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/local/apr/lib'
restart tomcat
sudo service tomcat restart
On Mac OS X:
$ brew install tomcat-native
==> tomcat-native
In order for tomcat's APR lifecycle listener to find this library, you'll
need to add it to java.library.path. This can be done by adding this line
to $CATALINA_HOME/bin/setenv.sh
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/opt/tomcat-native/lib"
If $CATALINA_HOME/bin/setenv.sh doesn't exist, create it and make it executable.
Then add it to the eclipse's tomcat arguments (double-click Server > Open Launch Configuration > Arguments tab > VM arguments)
-Djava.library.path=/usr/local/opt/tomcat-native/lib
on debian 8 I fix it with installing libapr1-dev:
apt-get install libtcnative-1 libapr1-dev
Had this problem as well. If you do have the libraries, but still have this error, it may be a configuration error. Your server.xml may be missing the following line:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
(Alternatively, it may be commented out). This <Listener>, like other listeners is a child of the top-level <Server>.
Without the <Listener> line, there's no attempt to load the APR library, so LD_LIBRARY_PATH and -Djava.library.path= settings are ignored.
I had this issue upgrading from Java 8 to 11. After adding this dependency, my app launched without issue:
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.25.0-GA</version>
</dependency>
I had the same problem when tomсat could not find the class. Try to view other log files. Sometimes No class def found error appears in different log files:
tomcat8-stdout
tomcat8-stderr
localhost
If you don't have Tomcat Native library install it with:
sudo apt-get install libtcnative-1
and if it's still there an old version upgrade it with:
sudo apt-get upgrade libtcnative-1
My problem was in add some library from tomcat to eclipse class path i just going to
eclipse click right to project and going to debug configuration -> classpath -> Add External JARs add all jars files from apache-tomcat-7.0.35\bin this was my problem and it's worked for me .
For future readers:
I had faced this issue myself when trying to run a Spring Boot application in Spring STS. This issue didn't resurface initially. I was able to work on my project without any issues for quite some time until one fine day I started getting this particular error.
From what I am able to recall I had not made any configuration changes to my project and neither changed the Java/Tomcat version being used.
None of the discussions/suggestions regarding installing the tomcat native library made any sense to me since the project was already working fine before.
SOLUTION that worked for me:
So lastly I though of trying to delete and reimport my project.
I deleted my project from Spring STS, restarted the Spring STS and then reimported the project. It worked like a charm and never faced the issue ever since.
You may also try deleting any IDE generated files/folders(if there are any) in your project, before restarting the IDE and reimporting the project.
I still happen to work on this project from time to time and haven't faced the issue as of now. My current development IDE is IntelliJ.
I'm not sure if the error was IDE specific.