Platform: virtual private server
amd64,
debian 8 "jessie" (with jessie-backports)
openjdk-8-jdk 8u121-b13-1~bpo8+1 (from jessie-backports)
(the old VM has version 8u111-b14-2~bpo8+1)
karaf-4.0.7
I am trying to move my application from my old VM, where it runs, and on
to a new VM where it won't start even though all of the important parts
I can think of, are the same (listed above, under platform).
The feature installation fails with an error message:
karaf@root()> feature:install ukelonn-db-postgresql
Error executing command: Unable to resolve root: missing requirement [root]
osgi.identity; osgi.identity=ukelonn-db-postgresql; type=karaf.feature;
version="[1.0.0.SNAPSHOT,1.0.0.SNAPSHOT]";
filter:="(&(osgi.identity=ukelonn-db-postgresql)(type=karaf.feature)(version>=1.0.0.SNAPSHOT)(version<=1.0.0.SNAPSHOT))"
[caused by: Unable to resolve ukelonn-db-postgresql/1.0.0.SNAPSHOT: missing
requirement [ukelonn-db-postgresql/1.0.0.SNAPSHOT] osgi.identity;
osgi.identity=no.priv.bang.ukelonn.postgresql.db; type=osgi.bundle;
version="[1.0.0.SNAPSHOT,1.0.0.SNAPSHOT]"; resolution:=mandatory [caused by:
Unable to resolve no.priv.bang.ukelonn.postgresql.db/1.0.0.SNAPSHOT: missing
requirement [no.priv.bang.ukelonn.postgresql.db/1.0.0.SNAPSHOT] osgi.ee;
filter:="(&(osgi.ee=JavaSE)(version=1.8))"]]
Does anyone know what might be wrong?
I get no such error message on the old VM. There the feature just
installs. I get no such error on my desktop, also amd64 (Intel i5,
"skylake"), also running debian 8 with stuff from jessie-backports.
I have searched the karaf.log file but it doesn't say anything more than
the error message.
Is the difference in java version significant? (1.8_121 where it fails,
1.8_111 where it doesn fail)
On the new VM karaf complains about a missing JAVA_HOME:
root@cadalora:/home/karaf# systemctl status karaf
karaf.service - Karaf - karaf
Loaded: loaded (/lib/systemd/system/karaf.service; enabled)
Active: active (running) since Thu 2017-03-16 21:27:16 GMT; 39min ago
Process: 2948 ExecStop=/usr/local/karaf/bin/karaf stop (code=exited,
status=0/SUCCESS)
Main PID: 3125 (java)
CGroup: /system.slice/karaf.service
└─3125 /usr/bin/java -server -Xms128M -Xmx512M
-XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass
-Dcom.sun.management.jmxremote -Djava.endorsed.dirs=/usr/lib/jvm...
Mar 16 21:27:16 cadalora.default.sbang.uk0.bigv.io systemd[1]: Starting Karaf -
karaf...
Mar 16 21:27:16 cadalora.default.sbang.uk0.bigv.io systemd[1]: Started Karaf -
karaf.
Mar 16 21:27:16 cadalora.default.sbang.uk0.bigv.io karaf[3125]: karaf:
JAVA_HOME not set; results may vary
On the old VM there is no complaint about a missing JAVA_HOME.
The JAVA_HOME variable isn't set on either machine.
Is the missing JAVA_HOME message significant?
This is my application:
https://github.com/steinarb/ukelonn/tree/using-vaadin
(ie. the "using-vaadin" branch).
This is what I've done, so far, on the new VM:
1. Install openjdk-8-jdk with apt-get, from jessie-backports
https://packages.debian.org/jessie-backports/openjdk-8-jdk
2. Install maven 3.3.9 with apt-get, from jessie-backports
https://packages.debian.org/jessie-backports/maven
3. Install karaf 4.0.7 from a .deb package created by this script
https://github.com/steinarb/karaf-deb-packaging
This deb package creates user karaf, with group karaf and the home
directory /home/karaf and no login shell
4. I've cloned and built my project as user karaf with the following
commands:
/bin/su -s /bin/bash karaf
cd
mkdir git
cd git
git clone https://github.com/steinarb/ukelonn.git
cd ukelonn
git checkout using-vaadin
mvn clean install
After the commands, the /home/karaf/.m2/repository contains the
bundles built by the project, as well as the dependencies
5. I've logged into the karaf shell with ssh:
ssh -p 8101 karaf@localhost
6. I planned to do the following commands, but the first
feature:install failed:
feature:repo-add
mvn:no.priv.bang.ukelonn/ukelonn.karaf/LATEST/xml/features
feature:install ukelonn-db-postgresql
feature:install ukelonn
The feature file added by repo-add, looks like this:
File Edit Options Buffers Tools XML Text Help
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0"
name="ukelonn.karaf">
<feature name="ukelonn-api" description="Ukelonn webapp OSGi service
definitions OSGi bundle" version="1.0.0.SNAPSHOT">
<bundle
start-level="80">mvn:no.priv.bang.ukelonn/ukelonn.api/1.0.0-SNAPSHOT</bundle>
</feature>
<feature name="ukelonn-db-derby-test" description="Ukelonn webapp derby
test database OSGi bundle" version="1.0.0.SNAPSHOT">
<feature prerequisite="false" dependency="false">pax-jdbc</feature>
<feature prerequisite="false"
dependency="false">pax-jdbc-derby</feature>
<feature version="1.0.0.SNAPSHOT" prerequisite="false"
dependency="false">ukelonn-api</feature>
<bundle
start-level="80">mvn:no.priv.bang.ukelonn/ukelonn.bundle.test.db/1.0.0-SNAPSHOT</bundle>
</feature>
<feature name="ukelonn-db-postgresql" description="Ukelonn webapp
PostgreSQL database connection OSGi bundle" version="1.0.0.SNAPSHOT">
<feature prerequisite="false"
dependency="false">transaction-api</feature>
<feature prerequisite="false" dependency="false">pax-jdbc</feature>
<feature version="1.0.0.SNAPSHOT" prerequisite="false"
dependency="false">ukelonn-api</feature>
<bundle
start-level="80">mvn:no.priv.bang.ukelonn/ukelonn.bundle.postgresql.db/1.0.0-SNAPSHOT</bundle>
<bundle
start-level="80">mvn:org.postgresql/postgresql/9.4.1211.jre7</bundle>
</feature>
<feature name="ukelonn" description="Ukelonn webapp OSGi bundle"
version="1.0.0.SNAPSHOT">
<feature prerequisite="false" dependency="false">pax-war</feature>
<feature prerequisite="false" dependency="false">ukelonn-api</feature>
<bundle start-level="80">mvn:org.apache.shiro/shiro-core/1.3.1</bundle>
<bundle start-level="80">mvn:org.apache.shiro/shiro-web/1.3.1</bundle>
<bundle
start-level="80">mvn:commons-beanutils/commons-beanutils/1.8.3</bundle>
<bundle
start-level="80">mvn:commons-collections/commons-collections/3.2.2</bundle>
<bundle start-level="80">mvn:org.jsoup/jsoup/1.8.3</bundle>
<bundle start-level="80">mvn:com.vaadin/vaadin-shared/7.6.1</bundle>
<bundle start-level="80">mvn:com.vaadin/vaadin-server/7.6.1</bundle>
<bundle start-level="80">mvn:com.vaadin/vaadin-themes/7.6.1</bundle>
<bundle
start-level="80">mvn:com.vaadin/vaadin-client-compiled/7.6.1</bundle>
<bundle
start-level="80">mvn:com.vaadin.external.flute/flute/1.3.0.gg2</bundle>
<bundle
start-level="80">mvn:com.vaadin.external.streamhtmlparser/streamhtmlparser-jsilver/0.0.10.vaadin1</bundle>
<bundle
start-level="80">mvn:com.vaadin.external.google/guava/16.0.1.vaadin1</bundle>
<bundle
start-level="80">wrap:mvn:com.vaadin.external.gwt/gwt-user/2.7.0.vaadin4</bundle>
<bundle
start-level="80">wrap:mvn:com.vaadin.addon/vaadin-touchkit-agpl/4.1.0</bundle>
<bundle
start-level="80">mvn:no.priv.bang.ukelonn/ukelonn.bundle/1.0.0-SNAPSHOT/war</bundle>
</feature>
<feature name="ukelonn.karaf" description="Do not install this feature, it
will install two conflicing database connections" version="1.0.0.SNAPSHOT">
<feature version="1.0.0.SNAPSHOT" prerequisite="false"
dependency="false">ukelonn-api</feature>
<feature version="1.0.0.SNAPSHOT" prerequisite="false"
dependency="false">ukelonn-db-derby-test</feature>
<feature version="1.0.0.SNAPSHOT" prerequisite="false"
dependency="false">ukelonn-db-postgresql</feature>
<feature version="1.0.0.SNAPSHOT" prerequisite="false"
dependency="false">ukelonn</feature>
</feature>
</features>