Hi Jens,
Thank you for coming back. I do have the configurations in my spring xml
file as follows. Starting the server from gfsh works fine. However, from a
spring boot app (2.3.0.RELEASE) with these configurations tries to start
the API then fails with these lines in the log. I have also
tried @EnableHttpService
2021-02-17 10:18:51.016 INFO 11756 --- [ main]
o.a.geode.management.internal.AgentUtil : GEODE_HOME:D:\apache-geode-1.12.0
2021-02-17 10:18:51.017 INFO 11756 --- [ main]
o.a.geode.management.internal.AgentUtil : Located war: geode-web-api at
location:
file:/D:/apache-geode-1.12.0/tools/Extensions/geode-web-api-1.12.0.war
2021-02-17 10:18:51.018 WARN 11756 --- [ main]
o.a.geode.management.internal.RestAgent : HttpService is not available -
could not start Dev REST API
<util:properties id="geodeProperties">
<prop key="name">${SERVER_NAME}</prop>
<prop key="mcast-port">0</prop>
<prop key="locators">${LOCATORS}</prop>
<prop key="jmx-manager">false</prop>
<prop key="jmx-manager-start">false</prop>
<prop key="http-service-bind-address">localhost</prop>
<prop key="http-service-port">9301</prop>
<prop key="http-service-ssl-require-authentication">false</prop>
<prop key="start-dev-rest-api">true</prop>
<prop key="enable-network-partition-detection">false</prop>
<prop key="groups">default</prop>
</util:properties>
<geode:cache id="geodeCache"
properties-ref="geodeProperties"
pdx-serializer-ref="pdxSerializer"
enable-auto-reconnect="true"
critical-heap-percentage="90"
eviction-heap-percentage="80"
use-cluster-configuration="true"/>
This is what my pom looks like. Do you see any missing dependency here?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>geode-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>GeodeServer</name>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-geode</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.shell</groupId>
<artifactId>spring-shell</artifactId>
<version>1.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Thanks,
Pratibha
On Tue, Feb 16, 2021 at 8:12 PM Jens Deppe <[email protected]> wrote:
> Hi Pratibha,
>
>
>
> In order to start the Developer REST API (which also exposes the Swagger
> UI) you must set the following properties when you start the server:
>
>
>
> start-dev-rest-api=true
>
>
>
> In order to do this from gfsh you should use the following option:
> --J=-Dgemfire.start-dev-rest-api=true. Or if you have a
> gemfire.properties file then just add the property (without the “gemfire.”
> prefix). In the server log you should see the following lines indicating
> the correct startup of the Dev REST API:
>
>
>
> [info 2021/02/16 06:32:45.144 PST server1 <main> tid=0x1]
> GEODE_HOME:/Users/jdeppe/workspace/gemfire-develop/open/geode-assembly/build/install/apache-geode
>
>
>
> [info 2021/02/16 06:32:45.146 PST server1 <main> tid=0x1] Located war:
> geode-web-api at location:
> file:/Users/jdeppe/workspace/gemfire-develop/open/geode-assembly/build/install/apache-geode/tools/Extensions/geode-web-api-1.14.0-build.0.war
>
>
>
> [info 2021/02/16 06:32:45.214 PST server1 <main> tid=0x1] Adding webapp
> /gemfire-api
>
>
>
> [info 2021/02/16 06:32:45.215 PST server1 <main> tid=0x1] *Attempting to
> start HTTP service on port (7171) at bind-address (0.0.0.0)...*
>
>
>
> [info 2021/02/16 06:32:46.031 PST server1 <main> tid=0x1] Initializing
> Servlet 'geode'
>
>
>
> [info 2021/02/16 06:32:47.064 PST server1 <main> tid=0x1] Bean
> 'util:constant#45dc7be' of type
> [org.springframework.beans.factory.config.FieldRetrievingFactoryBean] is
> not eligible for getting processed by all BeanPostProcessors (for example:
> not eligible for auto-proxying)
>
>
>
> In the above example I had also set: --J=-Dgemfire.http-service-port=7171
> (the default is normally 7070).
>
>
>
> Also, the Swagger UI is only available from servers and is not available
> on the locator.
>
>
>
> Hope this helps.
>
> --Jens
>
>
>
> *From: *Pratibha Ayengar <[email protected]>
> *Reply-To: *"[email protected]" <[email protected]>
> *Date: *Monday, February 15, 2021 at 8:52 PM
> *To: *"[email protected]" <[email protected]>
> *Subject: *Re: Apache geode 1.12.0 swagger UI issue
>
>
>
> Thank you, Rupert. This does help narrow it down. Would you be able to
> help on what this particular check is - if (cache.getOptionalService(
> HttpService.class).isPresent())
>
> This is the one that seems to be failing.
>
>
>
> Thanks,
>
> Pratibha
>
>
>
>
>
> On Mon, Feb 15, 2021 at 3:04 PM Rupert St John Webster <
> [email protected]> wrote:
>
> // Check if we're already running inside Tomcat
>
> if (isRunningInTomcat()) {
>
> logger.warn("Detected presence of catalina system properties.
> HTTP service will not be started. To enable the GemFire Developer REST API,
> please deploy the /geode-web-api WAR file in your application server.");
>
> } else if (agentUtil.isAnyWarFileAvailable(gemfireAPIWar)) {
>
> Map<String, Object> securityServiceAttr = new HashMap<>();
>
> securityServiceAttr.put(HttpService.
> SECURITY_SERVICE_SERVLET_CONTEXT_PARAM, securityService);
>
> if (cache.getOptionalService(HttpService.class).isPresent()) {
>
> HttpService httpService = cache.getOptionalService(
> HttpService.class).get();
>
> Path gemfireAPIWarPath = Paths.get(gemfireAPIWar);
>
> httpService.addWebApplication("/gemfire-api",
> gemfireAPIWarPath, securityServiceAttr);
>
> httpService.addWebApplication("/geode", gemfireAPIWarPath,
> securityServiceAttr);
>
> } else {
>
> logger.warn("HttpService is not available - could not
> start Dev REST API");
>
> }
>
>
>
> Is this any help?
>
>
>
> cheers
>
>
>
> *From:* Pratibha Ayengar [mailto:[email protected]]
> *Sent:* 14 February 2021 09:44
> *To:* [email protected]
> *Subject:* Re: Apache geode 1.12.0 swagger UI issue
>
>
>
> *This email has reached the company via an external source. *
>
> *Please be cautious opening any attachments or links. *
>
>
> Hi Aashish,
>
>
>
> Thank you for coming back. I got the same result after setting GEODE_HOME.
> Here are the logs. Any idea what could cause this issue?
>
>
>
> 2021-02-14 15:12:31.426 INFO 9976 --- [ main]
> o.a.geode.management.internal.AgentUtil : GEODE_HOME:D:\apache-geode-1.12.0
> 2021-02-14 15:12:31.428 INFO 9976 --- [ main]
> o.a.geode.management.internal.AgentUtil : Located war: geode-web-api at
> location:
> file:/D:/apache-geode-1.12.0/tools/Extensions/geode-web-api-1.12.0.war
> 2021-02-14 15:12:31.429 WARN 9976 --- [ main]
> o.a.geode.management.internal.RestAgent : HttpService is not available -
> could not start Dev REST API
>
>
>
> Thanks,
>
> Pratibha
>
>
>
> On Sat, Feb 13, 2021 at 5:57 PM Ashish Choudhary <
> [email protected]> wrote:
>
> For some reason your GEODE_HOME is null and it might be causing this
> issue. Please check that first.
>
> With best regards,
> Ashish
>
>
>
> On Sat, Feb 13, 2021, 4:56 PM Pratibha Ayengar <[email protected]>
> wrote:
>
>
>
> Hi Geode Team,
>
>
>
> I am upgrading apache geode version from 1.6.0 to 1.12.0 for our project
> and I am having trouble starting up the REST API. Could you please help me
> understand what I am missing here.
>
>
>
> We start up the locator using gfsh and use a spring data geode project to
> start the server. Attached are the geode.properties file used to start the
> locator and the project used to start the server.
>
>
>
> Following are the commands and the JVM arguments used for the locator and
> server respectively. I have also attached the logs from the server that
> does not seem to indicate the reason why the swagger API is not started.
>
>
>
> SpringBoot version - 2.3.0.RELEASE
>
>
>
> Locator start command
>
> start locator --name=Locator1 --port=10334
> --properties-file=D:\apache-geode-1.12.0\geode-locator.properties
>
>
>
> JVM arguments used while starting server
>
> -Dgemfire.home=D:\apache-geode-1.12.0
>
>
>
> Line in the logs that show the API is not available -
>
> 2021-02-04 10:53:05.983 INFO 8936 --- [ main]
> o.a.geode.management.internal.AgentUtil : GEODE_HOME:null
> 2021-02-04 10:53:05.984 INFO 8936 --- [ main]
> o.a.geode.management.internal.AgentUtil : Reading gemfire.home System
> Property -> D:\apache-geode-1.12.0
> 2021-02-04 10:53:05.985 INFO 8936 --- [ main]
> o.a.geode.management.internal.AgentUtil : Located war: geode-web-api at
> location:
> file:/D:/apache-geode-1.12.0/tools/Extensions/geode-web-api-1.12.0.war
> 2021-02-04 10:53:05.986 WARN 8936 --- [ main]
> o.a.geode.management.internal.RestAgent : HttpService is not available -
> could not start Dev REST API
>
>
>
> Appreciate any help I can get.
>
>
>
> Thank you,
>
> Pratibha Ayengar
>
>
>
>