Tested on CentOS 7.7 and Debian 10, with latest updated, both report same problem below.
Could you please verify it, whether it’s true or false?
failure:
# sh ~/cmdbuild-3.2.1.sh install
CMDBuild interactive install wizard - welcome!
this wizard will guide you in the process of installing and configuring a new instance of CMDBuild!
tomcat install location </root/cmdbuild_30> : /tmp/my_cmdbuild_dir
tomcat http port <8080>:
tomcat shutdown port (offset already applied) <8005>:
tomcat debug port (offset already applied) <8000>:
postrgres db <localhost:5432> :
postrgres admin account <postgres/postgres> :
WARNING: server version 10.0.12 is not supported, you may encounter problems
cmdbuild posrgres database name <cmdbuild_0bb3> : my_database
database dump to load <demo> : demo
we're ready to begin, this is your configuration:
tomcat: /tmp/my_cmdbuild_dir
http port: 8080
shutdown port: 8005
debug port: 8000
postgres database: localhost:5432/my_database
database dump: demo.dump.xz
if everything is ok, press ENTER to begin installation
<press enter to begin>
BEGIN installation
08:54:03.031 WARN o.c.utils.crypto.Cm3EasyCryptoUtils - using default cm3easy key ( if this is a production environment you should change this to a secure key source by setting either env param `CMDBUILD_CM3EASY_KEY` or java system property `org.cmdbuild.cm3easy.key` to a valid key file )
install tomcat...
Exception in thread "main" java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: classpath
at org.cmdbuild.utils.lang.CmExceptionUtils.toRuntimeException(CmExceptionUtils.java:98)
at org.cmdbuild.utils.lang.CmExceptionUtils.runtime(CmExceptionUtils.java:60)
at org.cmdbuild.utils.io.CmIoUtils.lambda$fetchFileWithCache$0(CmIoUtils.java:276)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:295)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:283)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:271)
at org.cmdbuild.utils.tomcatmanager.TomcatBuilder.unpackToDir(TomcatBuilder.java:88)
at org.cmdbuild.utils.tomcatmanager.TomcatBuilder.buildTomcat(TomcatBuilder.java:60)
at org.cmdbuild.utils.cli.commands.InstallCommandRunner.exec(InstallCommandRunner.java:163)
at org.cmdbuild.utils.cli.commands.AbstractCommandRunner.exec(AbstractCommandRunner.java:78)
at org.cmdbuild.utils.cli.Main.runMain(Main.java:127)
at org.cmdbuild.utils.cli.Main.main(Main.java:56)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.cmdbuild.webapp.cli.Main.runCli(Main.java:125)
at org.cmdbuild.webapp.cli.Main.startFromWarFile(Main.java:89)
at org.cmdbuild.webapp.cli.Main.main(Main.java:37)
Caused by: java.net.MalformedURLException: unknown protocol: classpath
at java.base/java.net.URL.<init>(URL.java:652)
at java.base/java.net.URL.fromURI(URL.java:719)
at java.base/java.net.URI.toURL(URI.java:1116)
at org.cmdbuild.utils.io.CmIoUtils.lambda$fetchFileWithCache$0(CmIoUtils.java:274)
... 16 more
Hi, java 11 as was requested as of v3.2 requirements.
Using the same installation process for pure v3.2.0, also with java 11, there are no such “classpath” issues.
Only with v3.2.1.
In Debian 10 java 11 is also a default, in RHEL7 I made it a default prior to running the installer himself.
openjdk 11.0.6 2020-01-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.6+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.6+10-LTS, mixed mode, sharing)
loading war ... done
loading jars ................................................................................................................. done
CMDBuild interactive install wizard - welcome!
this wizard will guide you in the process of installing and configuring a new instance of CMDBuild!
tomcat install location </root/cmdbuild_30> : /opt/my_dir
tomcat http port <8080>:
tomcat shutdown port (offset already applied) <8005>:
tomcat debug port (offset already applied) <8000>:
postrgres db <localhost:5432> :
postrgres admin account <postgres/postgres> :
WARNING: server version 10.0.12 is not supported, you may encounter problems
cmdbuild posrgres database name <cmdbuild_cf2f> : my_db
database dump to load <demo> :
we're ready to begin, this is your configuration:
tomcat: /opt/my_dir
http port: 8080
shutdown port: 8005
debug port: 8000
postgres database: localhost:5432/my_db
database dump: demo.dump.xz
if everything is ok, press ENTER to begin installation
<press enter to begin>
BEGIN installation
10:09:38.956 WARN o.c.utils.crypto.Cm3EasyCryptoUtils - using default cm3easy key ( if this is a production environment you should change this to a secure key source by set
ting either env param `CMDBUILD_CM3EASY_KEY` or java system property `org.cmdbuild.cm3easy.key` to a valid key file )
Exception in thread "main" install tomcat...
java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: classpath
at org.cmdbuild.utils.lang.CmExceptionUtils.toRuntimeException(CmExceptionUtils.java:98)
at org.cmdbuild.utils.lang.CmExceptionUtils.runtime(CmExceptionUtils.java:60)
at org.cmdbuild.utils.io.CmIoUtils.lambda$fetchFileWithCache$0(CmIoUtils.java:276)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:295)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:283)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:271)
at org.cmdbuild.utils.tomcatmanager.TomcatBuilder.unpackToDir(TomcatBuilder.java:88)
at org.cmdbuild.utils.tomcatmanager.TomcatBuilder.buildTomcat(TomcatBuilder.java:60)
at org.cmdbuild.utils.cli.commands.InstallCommandRunner.exec(InstallCommandRunner.java:163)
at org.cmdbuild.utils.cli.commands.AbstractCommandRunner.exec(AbstractCommandRunner.java:78)
at org.cmdbuild.utils.cli.Main.runMain(Main.java:127)
at org.cmdbuild.utils.cli.Main.main(Main.java:56)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.cmdbuild.webapp.cli.Main.runCli(Main.java:125)
at org.cmdbuild.webapp.cli.Main.startFromWarFile(Main.java:89)
at org.cmdbuild.webapp.cli.Main.main(Main.java:37)
Caused by: java.net.MalformedURLException: unknown protocol: classpath
...
...
Hi again, the problem you are encountering doesn’t happen on 3.2 because the tomcat package was obtained from the online repository, we now embedded it in the installation package. I’m going to try the installation with the same java build of yours and get back to you (currently I’ve tried with build 11.0.5+10 and didn’t encounter any problems, while you have build 11.0.6+10)
I even removed the distribution provided Java 11 from this simplified process, to use your packaged one, which btw. is jdk-11.0.6+10, however, still the same failure:
# sh cmdbuild-3.2.1.sh install
java binary (11 or later) not found; preparing embedded java runtime...
loading war ... done
loading jars ................................................................................................................. done
CMDBuild interactive install wizard - welcome!
this wizard will guide you in the process of installing and configuring a new instance of CMDBuild!
tomcat install location </root/cmdbuild_30> :
tomcat http port <8080>:
tomcat shutdown port (offset already applied) <8005>:
tomcat debug port (offset already applied) <8000>:
postrgres db <localhost:5432> :
postrgres admin account <postgres/postgres> :
WARNING: server version 10.0.12 is not supported, you may encounter problems
cmdbuild posrgres database name <cmdbuild_3308> :
database dump to load <demo> :
we're ready to begin, this is your configuration:
tomcat: /root/cmdbuild_30
http port: 8080
shutdown port: 8005
debug port: 8000
postgres database: localhost:5432/cmdbuild_3308
database dump: demo.dump.xz
if everything is ok, press ENTER to begin installation
<press enter to begin>
BEGIN installation
11:26:12.902 WARN o.c.utils.crypto.Cm3EasyCryptoUtils - using default cm3easy key ( if this is a production environment you should change this to a secure key source by setting either env param `CMDBUILD_CM3EASY_KEY` or java system property `org.cmdbuild.cm3easy.key` to a valid key file )
install tomcat...
Exception in thread "main" java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: classpath
at org.cmdbuild.utils.lang.CmExceptionUtils.toRuntimeException(CmExceptionUtils.java:98)
at org.cmdbuild.utils.lang.CmExceptionUtils.runtime(CmExceptionUtils.java:60)
at org.cmdbuild.utils.io.CmIoUtils.lambda$fetchFileWithCache$0(CmIoUtils.java:276)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:295)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:283)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:271)
at org.cmdbuild.utils.tomcatmanager.TomcatBuilder.unpackToDir(TomcatBuilder.java:88)
at org.cmdbuild.utils.tomcatmanager.TomcatBuilder.buildTomcat(TomcatBuilder.java:60)
at org.cmdbuild.utils.cli.commands.InstallCommandRunner.exec(InstallCommandRunner.java:163)
at org.cmdbuild.utils.cli.commands.AbstractCommandRunner.exec(AbstractCommandRunner.java:78)
at org.cmdbuild.utils.cli.Main.runMain(Main.java:127)
at org.cmdbuild.utils.cli.Main.main(Main.java:56)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.cmdbuild.webapp.cli.Main.runCli(Main.java:125)
at org.cmdbuild.webapp.cli.Main.startFromWarFile(Main.java:89)
at org.cmdbuild.webapp.cli.Main.main(Main.java:37)
Caused by: java.net.MalformedURLException: unknown protocol: classpath
at java.base/java.net.URL.<init>(URL.java:652)
at java.base/java.net.URL.fromURI(URL.java:719)
at java.base/java.net.URI.toURL(URI.java:1116)
at org.cmdbuild.utils.io.CmIoUtils.lambda$fetchFileWithCache$0(CmIoUtils.java:274)
... 16 more
I don’t know what other differences you have at yours.
I’m currently setting up a Debian 10 VM to test on your same OS, I’m using Ubuntu 18.04.2 LTS, in the meanwhile you can perform the manual installation described in the CMDBuild manuals.
I managed to recreate the problem on a freshly installed Debian VM, could you please make sure that your JAVA_HOME path is correctly set when you launch the installation? (just type $JAVA_HOME in the terminal before launching the installation and check if what gets printed is the correct path of your java installation)
My simplified simulation was without java prerequisity, hence the JAVA_HOME variable has no target to point to.
However, to test it, I installed the java for the installer:
But makes no difference (and yes, it’s a correct path to the java, because when I installed previous version like v3.2.0, it had no problems with it):
# ./cmdbuild-3.2.1.sh install
loading war ... done
loading jars ................................................................................................................. done
CMDBuild interactive install wizard - welcome!
this wizard will guide you in the process of installing and configuring a new instance of CMDBuild!
tomcat install location </root/cmdbuild_30> :
tomcat http port <8080>:
tomcat shutdown port (offset already applied) <8005>:
tomcat debug port (offset already applied) <8000>:
postrgres db <localhost:5432> :
postrgres admin account <postgres/postgres> :
WARNING: server version 10.0.12 is not supported, you may encounter problems
cmdbuild posrgres database name <cmdbuild_55dd> :
database dump to load <demo> :
we're ready to begin, this is your configuration:
tomcat: /root/cmdbuild_30
http port: 8080
shutdown port: 8005
debug port: 8000
postgres database: localhost:5432/cmdbuild_55dd
database dump: demo.dump.xz
if everything is ok, press ENTER to begin installation
<press enter to begin>
BEGIN installation
12:38:55.562 WARN o.c.utils.crypto.Cm3EasyCryptoUtils - using default cm3easy key ( if this is a production environment you should change this to a secure key source by setting either env param `CMDBUILD_CM3EASY_KEY` or java system prope
rty `org.cmdbuild.cm3easy.key` to a valid key file )
install tomcat...
Exception in thread "main" java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: classpath
...
Please note, that RHEL is affected alike, as I said before.
Hi, we found the problem and solved it, the fix will be available in the next releases, in the meanwhile you can proceed with the manual installation of CMDBuild, thanks for the report.
Still encountering the error on version 3.2.1 with [cmdbuild-3.2.1.zip]
[root@cmdb01ct cmdbuild-3.2.1]# ll
total 937192
-rwxrwxr--. 1 root root 23411 Apr 22 03:18 CHANGELOG.txt
-rwxrwxr--. 1 root root 578407674 Apr 22 03:18 cmdbuild-3.2.1.sh
-rwxrwxr--. 1 root root 381205335 Apr 22 03:19 cmdbuild-3.2.1.war
-rwxrwxr--. 1 root root 34283 Apr 22 03:18 COPYING.txt
-rwxrwxr--. 1 root root 7322 Apr 22 03:18 README.txt
[root@cmdb01ct cmdbuild-3.2.1]# ./cmdbuild-3.2.1.sh install
[ERROR] Failed to construct terminal; falling back to unsupported
java.lang.NumberFormatException: For input string: "0x100"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.valueOf(Integer.java:983)
at jline.internal.InfoCmp.parseInfoCmp(InfoCmp.java:59)
at jline.UnixTerminal.parseInfoCmp(UnixTerminal.java:242)
at jline.UnixTerminal.<init>(UnixTerminal.java:65)
at jline.UnixTerminal.<init>(UnixTerminal.java:50)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.lang.Class.newInstance(Class.java:584)
at jline.TerminalFactory.getFlavor(TerminalFactory.java:211)
at jline.TerminalFactory.create(TerminalFactory.java:102)
at jline.TerminalFactory.get(TerminalFactory.java:186)
at jline.TerminalFactory.get(TerminalFactory.java:192)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:243)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:235)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:223)
at org.cmdbuild.utils.cli.commands.InstallCommandRunner.exec(InstallCommandRunner.java:62)
at org.cmdbuild.utils.cli.commands.AbstractCommandRunner.exec(AbstractCommandRunner.java:78)
at org.cmdbuild.utils.cli.Main.runMain(Main.java:127)
at org.cmdbuild.utils.cli.Main.main(Main.java:56)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.cmdbuild.webapp.cli.Main.runCli(Main.java:125)
at org.cmdbuild.webapp.cli.Main.startFromWarFile(Main.java:89)
at org.cmdbuild.webapp.cli.Main.main(Main.java:37)
CMDBuild interactive install wizard - welcome!
this wizard will guide you in the process of installing and configuring a new instance of CMDBuild!
tomcat install location </root/cmdbuild_30> : /app01/cmdbuild_30
tomcat http port <8080>:
tomcat shutdown port (offset already applied) <8005>:
tomcat debug port (offset already applied) <8000>:
postrgres db <localhost:5432> :
postrgres admin account <postgres/postgres> : ************/************
WARNING: server version 10.0.6 is not supported, you may encounter problems
cmdbuild posrgres database name <cmdbuild_0ee0> :
database dump to load <demo> :
we're ready to begin, this is your configuration:
tomcat: /app01/cmdbuild_30
http port: 8080
shutdown port: 8005
debug port: 8000
postgres database: localhost:5432/cmdbuild_0ee0
database dump: demo.dump.xz
if everything is ok, press ENTER to begin installation
<press enter to begin>
BEGIN installation
15:51:21.915 WARN o.c.utils.crypto.Cm3EasyCryptoUtils - using default cm3easy key ( if this is a production environment you should change this to a secure key source by setting either env param `CMDBUILD_CM3EASY_KEY` or java system property `org.cmdbuild.cm3easy.key` to a valid key file )
install tomcat...
Exception in thread "main" java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: classpath
at org.cmdbuild.utils.lang.CmExceptionUtils.toRuntimeException(CmExceptionUtils.java:98)
at org.cmdbuild.utils.lang.CmExceptionUtils.runtime(CmExceptionUtils.java:60)
at org.cmdbuild.utils.io.CmIoUtils.lambda$fetchFileWithCache$0(CmIoUtils.java:276)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:295)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:283)
at org.cmdbuild.utils.io.CmIoUtils.fetchFileWithCache(CmIoUtils.java:271)
at org.cmdbuild.utils.tomcatmanager.TomcatBuilder.unpackToDir(TomcatBuilder.java:88)
at org.cmdbuild.utils.tomcatmanager.TomcatBuilder.buildTomcat(TomcatBuilder.java:60)
at org.cmdbuild.utils.cli.commands.InstallCommandRunner.exec(InstallCommandRunner.java:163)
at org.cmdbuild.utils.cli.commands.AbstractCommandRunner.exec(AbstractCommandRunner.java:78)
at org.cmdbuild.utils.cli.Main.runMain(Main.java:127)
at org.cmdbuild.utils.cli.Main.main(Main.java:56)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.cmdbuild.webapp.cli.Main.runCli(Main.java:125)
at org.cmdbuild.webapp.cli.Main.startFromWarFile(Main.java:89)
at org.cmdbuild.webapp.cli.Main.main(Main.java:37)
Caused by: java.net.MalformedURLException: unknown protocol: classpath
at java.base/java.net.URL.<init>(URL.java:652)
at java.base/java.net.URL.fromURI(URL.java:719)
at java.base/java.net.URI.toURL(URI.java:1116)
at org.cmdbuild.utils.io.CmIoUtils.lambda$fetchFileWithCache$0(CmIoUtils.java:274)
... 16 more
I am disappointed that my issue was not addressed but I figured out the issue myself. The install could not be done as root. This was not a SELinux issue.
I chown’d all files and working directory to a non-privileged user, re-ran the install as that non-privileged user, and started the app without issue.