Mount the ShareThe system must have access to the share on acd-store. Checkout JREST RepositoryOn acd-store execute the following commands to checkout the repository: Code Block |
---|
su jtel
cd /srv/jtel/shared
git clone https://bitbucket.org/jtelgmbh/jtel-system-java-services.git |
Installation - on Linux ServerTo install the REST role on a Linux server, proceed as follows on the acd-rest server. Java 1721Install java 17 21 as follows: Info |
---|
If another Java Version is already installed, remove using this: Code Block |
---|
apt-get remove default-jdk
apt-get remove openjdk-17-jdk |
|
Code Block |
---|
# Ensure the necessary packages are present:
apt install -y wget apt-transport-https gpg
# Download the Eclipse Adoptium GPG key
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
# Configure the Eclipse Adoptium apt repository.
echo "deb install openjdk-17https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
# Install temurin
apt update
apt-get install temurin-21-jdk |
jrestInstall jrest as follows: Code Block |
---|
cd /home/jtel
cp -r /home/jtel/shared/jtel-system-java-services/deploy/jrest jrest
mkdir /home/jtel/jrest/log
chown -R jtel:jtel jrest
cp jrest/systemd/jrest.service /etc/systemd/system
chmod +x /home/jtel/jrest/systemd/jrest
systemctl daemon-reload
systemctl enable jrest.service |
ConfigurationEdit the configuration file /home/jtel/jrest/config/jtel-jrest.xml and check database access passwords and hosts etc. are correct. Note: the serverID must be unique on each connector: Warning |
---|
<serverID>2001</serverID> |
Edit the startup file /home/jtel/jrest/systemd/jrest and check the java directory is correct (the correct java version). Edit the logging configuration file /home/jtel/jrest/config/log4j2.xml and make sure it points to the required logging directory. FirewallOpen the firewall port 8091 as follows: CentOS: Code Block |
---|
firewall-cmd --zone=public --add-port=8091/tcp --permanent
firewall-cmd --reload |
Debian: Code Block |
---|
ufw allow 8091/tcp |
Debian for systems with only internal access via eth1: Code Block |
---|
ufw allow in on eth1 to any port 8091 proto tcp |
Start ServiceStart the service. Code Block |
---|
systemctl start jrest.service |
Installation - on Windows ServerTo install the REST role on the windows server, proceed as follows. Java 12Download java 12 from here: https://cdn.jtel.de/downloads/java/openjdk-12.0.2_windows-x64_bin.zip Unpack this to the following directory: This should result in the following directory structure being created:
Code Block |
---|
C:\Apps\openjdk-12.0.2_windows-x64_bin\jdk-12.0.2\bin |
Warning |
---|
Note, if you do not use the paths specified above, you may have to change the configuration considerably. |
Copy Files and InstallOn the windows server, execute the following commands in a non-elevated command prompt: Code Block |
---|
c:
md \jrest
xcopy /E \\acd-store\shared\jtel-system-java-services\deploy\jrest C:\jrest |
ConfigurationEdit the configuration file, and make sure the database access (username and password) is correct: Code Block |
---|
C:\jrest\config\jtel-jrest.xml |
ShortcutCreate a shortcut for start-jrest.cmd and put this into shell:startup It is best to send the requests for the REST API to the load balancer. To make this possible, the following needs to be added to the load balancer configuration. Frontend http / httpsDepending on the protocol used, either http or https may be configured. In the relevant front-end the following should be added: Code Block |
---|
# ADD THIS WHERE THE acls are:
acl rest_req url_reg ^\/rest\/v1.0
# ADD THIS WHERE THE use_backend directives are:
use_backend jtel_rest if rest_req
# ADD THIS AT THE BOTTOM:
#---------------------------------------------------------------------
# this backend provides access to the REST API
#---------------------------------------------------------------------
backend jtel_rest
mode http
compression algo gzip
compression type text/xml text/html text/plain text/css text/javascript
balance leastconn # roundrobin
stick-table type ip size 20k
stick on src
server acd-tel1 acd-tel1:8091 weight 1 cookie jboss1 check inter 1m |
Reload Load-BalancerReload the load balancer: Code Block |
---|
systemctl reload haproxy |
In an elevated command prompt on the windows server: Code Block |
---|
netsh advfirewall firewall add rule name="JREST" dir=in action=allow protocol=TCP localport=8091 edge=no |
Start REST ServerStart the rest server on the windows machine with the shortcut. |