Welcome to Knowage Q&A, where you can ask questions and receive answers from other members of the community.
0 votes
1 view
I'm not able to run Knowage

I've installed apache tomcat under C:\Program Files\Apache Software Foundation\Tomcat 10.0  with 8081 port
I've installed knowage under :  D:\KNOWAGE\Knowage-Server-CE
If I run localhost:8081 it works normally
If I run localhost:8081\knowage  I got this error:
HTTP Status 404 – Not Found
Type Status Report
Message The requested resource [/knowaage] is not available
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/10.0.16

I'm not a programmer but how can apache runs  "\knowage"  if it's installed in another location ?  How can it knows where knowage programs are located.... It's probably stupid question but it's a very long time I'm trying to see it.  Something more easy and automatic as all other solutions .... not ?
It's a lot of time I'm trying to see and test knowage installed but still not able on my pc. I'm stuck here and very frustrated.
Thanks
Environment Windows 10 last version of knowage
closed with the note: Answered
in General Configuration by (170 points)
closed by

1 Answer

0 votes
 
Best answer
Hi,

You wrote two different paths of Tomcat, the first, "C:\Program Files\Apache Software Foundation\Tomcat 10.0", is a manual installation of an unsupported version of Tomcat, while the second one, "D:\KNOWAGE\Knowage-Server-CE", is the path which the installer should use as default install path. How do you want to install Knowage?

If you use the installer, you don't need an external Tomcat because the installer provides you the correct one (v8.x), already configured to listen on port 8080.

You wrote something about "localhost:8081", I think this is the TCP port where Tomcat 10 is listening to. You can absolutely configure the port of the Tomcat which the installer installs: just edit "D:\KNOWAGE\Knowage-Server-CE\conf\server.xml".

About the error:

Message The requested resource [/knowaage] is not available

Pay attention that the correct context path si /knowage then the complete URL is: http://localhost:8080/knowage

If you want to try a more easy installation method I suggest you to take a look at: https://github.com/KnowageLabs/Knowage-Server-Docker/tree/knowage-server-8.0/Knowage-Server-Docker

Knowage is also available via Docker. Via our official docker-compose.yaml you can boot up the entire infrastructure of Knowage in minutes.

Just use:

https://github.com/KnowageLabs/Knowage-Server-Docker/blob/knowage-server-8.0/Knowage-Server-Docker/docker-compose.yml

N.B.: remember to edit the .env file in the same directory to customize usernames and passwords.
by (5.1k points)
selected by
I got a WAMP server on 8080 with the mySQL database inside.
I've  stopped Apache ... Tomcat 10 too.
I thought that using localhost:8081 for knowage was a good option.
My question is ... why using the installer and change localhost:8080 to localhost:8081 it doesn't start ?

I changed 2 lines in server.xml like this:

    <Environment name="service_url" type="java.lang.String" value="http://localhost:8081/knowage"/>
    <Connector connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>
but it still doesn't work.

Is there something else to do in order to use 8081 ?

About docker compose is not so easy too for a not programmer.
Why all other BI application haven't this kind of issues on installing process ?

Now I've changed variable Catalina path (from previous Tomcat10 to knowage server...) and something different has happened.  Now the error is the following....  Incredible how much time it takes to make it running... Probably only a developer can install it...

HTTP Status 404 – Not Found


Type Status Report

Message JSP file [/jsp/spago/jspError.jsp] not found

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.


Apache Tomcat/9.0.50

Hi,

Knowage is an application composed by a Java app, deployed on Tomcat, and a DB, deployed on MySQL. If you browsed at the URL:

http://localhost:8081/knowage

It means the HTTP connector of Tomcat is well configured. The problem is on the DB side or on the connection between Tomcat and the DB.

If you chose to use an embedded version of MySQL, the link that the installer created on your desktop will launch bot MySQL and Tomcat. If you chose to use a custom instance of MySQL, please check users, grant and the presence of the DB of Knowage.

I don't know what you are talking about when you write "I've changed variable Catalina path" but if you set some environment variables, for example, CATALINA_HOME, CATALINA_BASE or CATALINA_OPTS, watch out that those variables are read by every instance of Tomcat installed on your system: that's the expected Tomcat behaviour because those variables should be used only on certain type of installations.

See: https://tomcat.apache.org/tomcat-8.5-doc/introduction.html#CATALINA_HOME_and_CATALINA_BASE

If you are just trying to run Knowage and if you don't have a system with multiple Tomcat instances, you don't need those variables, they only create problems.

Just revert everything you did to let Tomcat 10 run. Install Knowage, replace 8080 with 8081 in server.xml and run Tomcat, that's all our other users do in your situation.

Hello,

after many attemps something now starts ;-)))
I will check if everything will be right .
The initial mySql db is indipendent from the sources I will use to test the application ?
Maybe I will use Postgres Db data
Thanks

Hi,

good to ear that!

The policy of Knowage is that the DB changes can happen only when the minor version change: for example, if you want to try the 7.3 version and the 7.4 version, you need two different databases because of the schema changes.

You can use Postgres for sure. In "Knowage-Server-CE/lib" directory you should find the "postgresql-42.2.20.jar", the library needed to connect to Postgres. In "Knowage-Server-CE/conf/server.xml" you will find something like:

<Resource url="jdbc:mysql://localhost:3360/knowage_master" username="root" password="root" auth="Container" driverClassName="com.mysql.cj.jdbc.Driver" name="jdbc/knowage" type="javax.sql.DataSource" maxWait="-1" maxTotal="20" minIdle="10" maxIdle="15" removeAbandoned="true" removeAbandonedTimeout="3600" logAbandoned="true" testOnReturn="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="60000" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"/>

N.B.: look for the "jdbc/knowage" string

This is the configuration for MySQL. Cut the entire element (from "<Resource" to "/>") and do a backup, change the element in something like:

<Resource url="jdbc:postgresql://localhost:5432/knowage_master" username="root" password="root" auth="Container" driverClassName="org.postgresql.Driver" name="jdbc/knowage" type="javax.sql.DataSource" maxWait="-1" maxTotal="20" minIdle="10" maxIdle="15" removeAbandoned="true" removeAbandonedTimeout="3600" logAbandoned="true" testOnReturn="true" testWhileIdle="true" timeBetweenEvictionRunsMillis="10000" minEvictableIdleTimeMillis="60000" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"/>

Where url needs to be customized in the hostname (localhost), port (5432) and db name (knowage_master), user and root need to be equals to an existing account on your server and the driverClassName must be the value above.

...