Arch Linux Bridge Compile: java.lang.ClassNotFoundException: org.jitsi.eventadmin.Activator


#1

Hello, here is the output:

HOST=“192.168.1.100”
DOMAIN=“jitsibridge.prosody.localdomain”
PORT=“5347”
SECRET=“password”
JVB_HOME="/home/archives/Office/Communications/Jitsi/Bridge/bridge/jitsi-videobridge-master"

$ mvn compile exec:java -Dexec.args="–host=$HOST --domain=$DOMAIN --port=$PORT --secret=$SECRET" -Djava.library.path=$JVB_HOME/lib/native/linux-64 -Djava.util.logging.config.file=$JVB_HOME/lib/logging.properties -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=.jitsi-videobridge
[INFO] Scanning for projects…
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jitsi-videobridge 1.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] — maven-resources-plugin:2.6:resources (default-resources) @ jitsi-videobridge —
[INFO] Using ‘UTF-8’ encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/archives/Office/Communications/Jitsi/Bridge/bridge/jitsi-videobridge-master/src/main/resources
[INFO]
[INFO] — maven-compiler-plugin:3.5.1:compile (default-compile) @ jitsi-videobridge —
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] — exec-maven-plugin:1.4.0:java (default-cli) @ jitsi-videobridge —
Jun 30, 2018 10:18:50 AM net.java.sip.communicator.util.Logger info
INFO: java.net.preferIPv6Addresses=null
Jun 30, 2018 10:18:50 AM net.java.sip.communicator.util.Logger info
INFO: java.net.preferIPv4Stack=null
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/me/.m2/repository/org/slf4j/slf4j-simple/1.6.1/slf4j-simple-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/me/.m2/repository/org/slf4j/slf4j-jdk14/1.7.7/slf4j-jdk14-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
Jun 30, 2018 10:18:50 AM org.jitsi.impl.osgi.framework.BundleImpl start
SEVERE: Error starting bundle: null
java.lang.ClassNotFoundException: org.jitsi.eventadmin.Activator
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.jitsi.impl.osgi.framework.BundleImpl.loadClass(BundleImpl.java:237)
at org.jitsi.impl.osgi.framework.BundleImpl.start(BundleImpl.java:305)
at org.jitsi.impl.osgi.framework.launch.FrameworkImpl.startLevelChanged(FrameworkImpl.java:472)
at org.jitsi.impl.osgi.framework.startlevel.FrameworkStartLevelImpl$Command.run(FrameworkStartLevelImpl.java:137)
at org.jitsi.impl.osgi.framework.AsyncExecutor.runInThread(AsyncExecutor.java:122)
at org.jitsi.impl.osgi.framework.AsyncExecutor.access$000(AsyncExecutor.java:28)
at org.jitsi.impl.osgi.framework.AsyncExecutor$1.run(AsyncExecutor.java:231)

JDK is jdk8-openjdk 8.u172-2


#2

Yep, this command doesn’t work. I just created a PR to update README:

This works for me:

mvn compile exec:exec -Dexec.executable=java -Dexec.args="-cp %classpath org.jitsi.videobridge.Main --domain=\"${DOMAIN}\" --host=\"${HOST}\" --port=\"${PORT}\" --secret=\"${SECRET}\" -Djava.library.path=$JVB_HOME/lib/native/linux-64 -Djava.util.logging.config.file=$JVB_HOME/lib/logging.properties -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=.jitsi-videobridge "

#3

@damencho
Thanks for the help.
I’m now using your suggested call:

mvn compile exec:exec -Dexec.executable=java -Dexec.args="-cp %classpath org.jitsi.videobridge.Main --domain=jitsibridge.prosody.localdomain --host=192.168.1.100 --port=5347 --secret=password -Djava.library.path=$JVB_HOME/lib/native/linux-64 -Djava.util.logging.config.file=/home/archives/Office/Communications/Jitsi/Bridge/bridge/jitsi-videobridge-master/lib/logging.properties -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=.jitsi-videobridge "

and the result is:

SEVERE: java.net.ConnectException: Connection refused (Connection refused), host:192.168.1.100, port:5347
org.xmpp.component.ComponentException: java.net.ConnectException: Connection refused (Connection refused)

The prosody xmmp server is looking OK, and I can connet with Pidgin:

$ sudo systemctl status prosody
[sudo] password for me:
● prosody.service - XMPP (Jabber) Server
Loaded: loaded (/usr/lib/systemd/system/prosody.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-07-04 19:08:12 WITA; 18min ago
Process: 7593 ExecStart=/usr/bin/prosodyctl start (code=exited, status=0/SUCCESS)
Main PID: 7596 (lua5.1)
Tasks: 1 (limit: 4915)
Memory: 11.3M
CGroup: /system.slice/prosody.service
└─7596 lua5.1 /usr/lib/prosody/…/…/bin/prosody

Jul 04 19:16:45 tower prosody[7596]: c2s1a613c0: Received[c2s]:
Jul 04 19:17:45 tower prosody[7596]: c2s1a613c0: Received[c2s]: <iq id=‘purple4916fb66’ type=‘get’

The tail of /etc/prosody/prosody.cfg.lua looks like this:

certificates = “certs”
VirtualHost “prosody.localdomain”
ssl = {
key = “/etc/prosody/certs/prosody.localdomain.key”;
certificate = “/etc/prosody/certs/prosody.localdomain.crt”;
}
VirtualHost “conference.prosody.localdomain”
ssl = {
key = “/etc/prosody/certs/jitsibridge.prosody.localdomain.key”;
certificate = “/etc/prosody/certs/jitsibridge.prosody.localdomain.crt”;
}
—Set up an external component (default component port is 5347)
Component “jitsibridge.prosody.localdomain”
component_secret = “password”

Also

ping -c 1 jitsibridge.prosody.localdomain
PING jitsibridge.prosody.localdomain (192.168.1.100) 56(84) bytes of data.
64 bytes from jitsibridge.prosody.localdomain (192.168.1.100): icmp_seq=1 ttl=64 time=0.015 ms

--- jitsibridge.prosody.localdomain ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.015/0.015/0.015/0.000 ms

#4

But most probably prosody is not listening on that interface, by default it uses localhost.
You need to add in prosody: component_interface = "192.168.1.100" and restart it.
You can use it with pidgin cause that is a client connection using port 5222, while jvb uses the component connection, which by default is port 5347.


Running Maven assembly binaries: Connection refused