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

We are having problems to connect to mongodb database. We've performed the installation of the mongodb-driver-3.6.2.jar connector on the lib path. After that we restarted the application and it wasn't work.

Below you'll find the logs of the application:

[http-bio-8082-exec-8] 06 mar 2018 14:20:59,223 ERROR it.eng.spagobi.api.v2.DataSourceResource.testDataSource:470 - Error connecting to the mongoDB
java.lang.NumberFormatException: For input string: "mongo:************:27017"

        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:580)
        at java.lang.Integer.parseInt(Integer.java:615)
        at com.mongodb.ServerAddress.<init>(ServerAddress.java:85)
        at com.mongodb.ServerAddress.<init>(ServerAddress.java:49)
        at com.mongodb.MongoClient.<init>(MongoClient.java:92)
        at it.eng.spagobi.api.v2.DataSourceResource.testDataSource(DataSourceResource.java:463)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Environment Knowage Version: 6.1.1, Linux red hat, Chrome.
in Data Source by (210 points)

1 Answer

0 votes

Hi,

try using this format for the URL:

mongodb://host:port/database

and use just:

mongo

for the jdbc driver class.

by (11.6k points)

The error persist. Just to add more information, the database is not located in the same appl server. We've connected to the database with a ssh tunnel through mongodb compass. In this way we are sure abouth that the credentials are correct.

Is it possible that the problem is related to mongodb have to be located in the same server that the knowage application?

Below the details:

Log:

[http-bio-8082-exec-4] 08 mar 2018 11:30:42,732 ERROR it.eng.spagobi.api.v2.DataSourceResource.testDataSource:470 - Error connecting to the mongoDB
java.lang.NumberFormatException: For input string: "//*********:27017"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:569)
        at java.lang.Integer.parseInt(Integer.java:615)
        at com.mongodb.ServerAddress.<init>(ServerAddress.java:85)
        at com.mongodb.ServerAddress.<init>(ServerAddress.java:49)
        at com.mongodb.MongoClient.<init>(MongoClient.java:92)
        at it.eng.spagobi.api.v2.DataSourceResource.testDataSource(DataSourceResource.java:463)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Of course is possible to connect to a mongodb instance that is on a different machine than the knowage installation.
It seems that the error is raised directly from mongodb driver. Keep in mind that you don't have to include the mongo jdbc driver in the tomcat lib because is already included in the knowage webapps (mongo-java-driver 3.5), so if you had put it there remove it and retry (restarting the knowage server).

I removed the driver on the lib path. Then I restarted the application and the error persist.

Here is the ls of the lib path:

ls -1
annotations-api.jar
casclient.jar
catalina-ant.jar
catalina-ha.jar
catalina.jar
catalina-tribes.jar
commons-logging-1.1.1.jar
commons-logging-api-1.1.jar
concurrent.jar
ecj-4.3.1.jar
el-api.jar
foo-commonj.jar
geronimo-commonj_1.1_spec-1.0.jar
jasper-el.jar
jasper.jar
jsp-api.jar
mysql-connector-java-5.1.33-bin.jar
servlet-api.jar
tomcat7-websocket.jar
tomcat-api.jar
tomcat-coyote.jar
tomcat-dbcp.jar
tomcat-i18n-es.jar
tomcat-i18n-fr.jar
tomcat-i18n-ja.jar
tomcat-jdbc.jar
tomcat-util.jar
websocket-api.jar

and here are the mongo versions:

find . -name "*mongo*"
./webapps/knowagesvgviewerengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagekpiengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagebirtreportengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagebirtreportengine/WEB-INF/lib/org.eclipse.orbit.mongodb-2.10.1.v20130422-1135.jar
./webapps/knowageqbeengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagedossierengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagegeoreportengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagecockpitengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagecommonjengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/.install4j/user/mongo-java-driver-2.12.3.jar
./webapps/knowagedataminingengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagenetworkengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagemeta/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowage/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagejasperreportengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagetalendengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar
./webapps/knowagewhatifengine/WEB-INF/lib/mongo-java-driver-2.12.3.jar

I can see that the libraries are very old because this are released in 2014. Can I install the new version in the same path?

We are running the mongodb-linux-x86_64-rhel70-3.6.3

Following is the log errors:

[http-bio-8082-exec-1] 09 mar 2018 09:33:03,397 ERROR it.eng.spagobi.api.v2.DataSourceResource.testDataSource:470 - Error connecting to the mongoDB
java.lang.NumberFormatException: For input string: "//***********:27017"

        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:569)
        at java.lang.Integer.parseInt(Integer.java:615)
        at com.mongodb.ServerAddress.<init>(ServerAddress.java:85)
        at com.mongodb.ServerAddress.<init>(ServerAddress.java:49)
        at com.mongodb.MongoClient.<init>(MongoClient.java:92)
        at it.eng.spagobi.api.v2.DataSourceResource.testDataSource(DataSourceResource.java:463)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Hi, do you have any news abouth this?

Let me know if you need more information.

BR,

Hello, I have the same problem any new ?
thanks .


https://www.knowage-suite.com/qa/?qa=blob&qa_blobid=5421520526448056390

https://www.knowage-suite.com/qa/?qa=blob&qa_blobid=4022273488396749286

[http-nio-8080-exec-3] 27 août 2020 10:24:08,697 ERROR it.eng.spagobi.tools.datasource.service.rest.TestConnection.testDataSourceNew:217 - Error testing datasources

it.eng.spagobi.utilities.exceptions.SpagoBIException: Error connecting to the mongoDB

at it.eng.spagobi.tools.datasource.service.rest.TestConnection.testDataSourceNew(TestConnection.java:186)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)

at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)

at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)

at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)

at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)

at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)

at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)

at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)

at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)

Caused by: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=mongodb://192***********:27017:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: mongodb://192.********:27017}, caused by {java.net.UnknownHostException: mongodb://192.**********:27017}}]

at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:375)

at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:104)

at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:75)

at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:71)

at com.mongodb.binding.ClusterBinding.getReadConnectionSource(ClusterBinding.java:63)

at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:404)

at com.mongodb.operation.ListCollectionsOperation.execute(ListCollectionsOperation.java:173)

at com.mongodb.operation.ListCollectionsOperation.execute(ListCollectionsOperation.java:81)

at com.mongodb.Mongo.execute(Mongo.java:810)

at com.mongodb.Mongo$2.execute(Mongo.java:797)

at com.mongodb.OperationIterable.iterator(OperationIterable.java:47)

at com.mongodb.OperationIterable.forEach(OperationIterable.java:70)

at com.mongodb.MappingIterable.forEach(MappingIterable.java:50)

at com.mongodb.MappingIterable.into(MappingIterable.java:60)

at com.mongodb.DB.getCollectionNames(DB.java:266)

at it.eng.spagobi.tools.datasource.service.rest.TestConnection.testDataSourceNew(TestConnection.java:180)

... 36 more




 

...