OHDSI Home | Forums | Wiki | Github

Error when trying to access the WebAPI for testing


(Sarath Manikonda) #1

HI,
As part of the Atlas installation for our project I started with WebAPI installation. I was able to deploy the WebAPI.war file after which the source and source_diamon tables got created. I inserted the necessary data in to those tables and restartd the WebAPI. After this when I try to access the WebAPI using the url:
http://localhost:8080/WebAPI/source/sources (replaced the local host with our server ip), I am getting the "HTTP Status 404 - Not Found).
Not sure what I am missing. I did all the steps in the documentation.

Our OHDSI DB is PostgreSQL
Source (CDM) database is Oracle

Any help in this will be appreciated.

Thanks and Regards

Sarath Manikonda


(Chris Knoll) #2

That looks like a response trying to fetch some html doc root file instead of what you would get back if you went to an invalid path that was handled by WebAPI. Like this for example:

Do you have your tomcat instance configured to server HTML pages, and did you possibly set up a wwwroot to /WebAPI and therefore the wwwroot is handling the request instead of WebAPI? And, are you sure you have deployed your WebAPI.WAR file to tomcat? I’m guessing this is so since starting WebAPI created those tables, but it’s just a strange 404 message you get when you should get some exception thrown from WebAPI.


(Sarath Manikonda) #3

We deployed the .war file again and here are the errors that we are seeing. The tables are getting created, but there are other errors:

04-Mar-2019 15:40:22.170 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive /apache-tomcat-8.0.53/webapps/WebAPI.war

java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebAPI]]

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:731)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:973)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1850)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

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)


(Chris Knoll) #4

Look further around in your error log. It could be that the port is already in use (which may be the case because you got what appears to be a docroot from accessing port 8080, and possibly the WebAPI is trying to start up and open a port to 8080 as well. There is a setting in pom.xml called server.port which defaults to 8080. I do not know if when you deploy your WAR file if you are maing an embedded server launch… how are you deploying your WAR file? Do you go to localhost:8080/manager to stop/start/undeploy/deploy the war file?


(Ambuj) #5

@smanikonda
I recently deployed the same and went through such errors.
Do the following checks:
open http://localhost:8080 -->should show the Apache Tomcat Page
Check the connection string you entered in webapi,source
Ensure the username and password entered can access the OHDSI database.
Vocabularies tables should have data in it.

May be that helps.


(Sarath Manikonda) #6

@ambuj,

Here are the responses:

  1. http://localhost:8080 - is showing the Apache Tomcat Page
  2. For the second one, you mentioned connection string in webapi.source - here is what I have loaded in the webapi.source table for the source: (OHDSI is on PostgreSQL and CDM is on Oracle)

1 | cdm | MY_CDM | jdbc:oracle:thin:username/pwd@DB_SERVER:1521/SID | oracle | |

  1. The username I am using does have access to the OHDSI DB and Webapi schema.

  2. I have a question on Vocab tables - is it mandatory for the Vocab tables to have data. We might get No data found or something similar when we don’t have the data, instead of erroring out, right?

Here is the settings.xml that I have been using: (The highlighted part is left unchanged, from what is provided in the documentation)


(Sarath Manikonda) #7

@Chris_Knoll,
tomcat is using port 8080, so when WebAPI tries to open the same port there is an issue. Also the way our sys admins deploy the wire file is: they just restart tomcat and the file is automatically depolyed.

One Q i have is: Is it Ok if I change the server.port in pom.xml to something else, say 8085?


(Chris Knoll) #8

You could try it (rember to rebuild war file if you change properties), but I’m not an expert on tomcat configuration. When I set it up for myself, I just installed tomcat, went to the default port (8080)/manager and uploaded a WAR file. I can’t remember if there were any additional configuration changes i needed.

@Ajit_Londhe, you did some of the setup of Tomcat (even with certificates) in our environment, could you provide any insight on if the WebAPI starts up with a port conflict in tomcat?


(Ajit Londhe) #9

Is your Atlas also sitting on port 8080?

You can definitely change the port for WebAPI, I’ve done that on my local machine, and at Janssen, we have it set to 8443 for SSL.


(Sarath Manikonda) #10

@Ajit_Londhe,
That’s right. It looks like there is clash with the port 8080. I have changed the port to 8089 now. Will rebuild the .war file, deploy it and update you.
Thanks for your help.


(Sarath Manikonda) #11

No Luck.
I changed the port to 8089 - it did not work. And also with 8443, did not work either.
With any port other than 8080, I am getting the ‘Site Cannot be reached’ error.

One Q though:
In pom.xml, I updated the server.port as below:
<server.port>8443</server.port>

but I see there are other places where port 8080 is referred like below:
<executionengine.updateStatusCallback>http://localhost:8080/WebAPI/executionservice/callbacks/submission/{id}/status/update/{password}</executionengine.updateStatusCallback>

<executionengine.resultCallback>http://localhost:8080/WebAPI/executionservice/callbacks/submission/{id}/result/{password}</executionengine.resultCallback>

Do I need to change the port in these places also?


(Kwang Soo Jeong) #12
04-Mar-2019 15:40:22.170 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive /apache-tomcat-8.0.53/webapps/WebAPI.war

java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebAPI]]

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:731)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:973)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1850)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

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)

@smanikonda I think there will be a detailed error above or below the error. Could you show me that part?


(Sarath Manikonda) #13

The version of Postgresql that we are having (and is used for WebAPI DB) is:

version

PostgreSQL 9.2.24 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit

where as the one mentioned in the documentation is PostgewSql 9.3.

does this cause any issues in WebAPI installation?


(Sarath Manikonda) #14

@NEONKID

Here is the catalina.out file which I could get from our server (also, can you please check if I have missed anything in the settings.xml file, uploaded above).

Appreciate your help in this.

08Mar19_catalina_out.pdf (189.8 KB)


(Chris Knoll) #15

This is the failure:
Caused by: java.io.FileNotFoundException: /apache-tomcat-8.0.53/webapps/WebAPI/WEBINF/lib/spring-integration-core-4.3.8.RELEASE.jar (No such file or directory)

This is happening when the WAR file is deployed, based on this:
08-Mar-2019 16:00:24.856 SEVERE [localhost-startStop-2]
org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive /apachetomcat-8.0.53/webapps/WebAPI.war

I’m not sure why when you compiled, you didn’t have all dependencies bundled with your .WAR file. Could you open up the .war file with winzip, and check to see that the .jar’ file is in the /lib folder?


t