0

I am trying to register all the manage servers running in WebLogic 12 in Consul Discovery Server. In order do do that, I create a war project with spring-cloud-consul dependency. This is a spring-boot application. application run with each manage server in WebLogic server.

Here is the pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>
    ...
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            <version>3.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jersey</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-el</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>

weblogic.xml

<?xml version='1.0' encoding='UTF-8'?>
...
    <container-descriptor>
        <gzip-compression>
            <enabled>true</enabled>
            <min-content-length>4096</min-content-length>
            <content-type>text/html</content-type>
            <content-type>text/xml</content-type>
            <content-type>application/json</content-type>
            <content-type>application/x-javascript</content-type>
            <content-type>application/javascript</content-type>
            <content-type>text/javascript</content-type>
            <content-type>text/x-javascript</content-type>
            <content-type>text/x-json</content-type>
            <content-type>text/css</content-type>
            <content-type>text/plain</content-type>
        </gzip-compression>
        <servlet-reload-check-secs>-1</servlet-reload-check-secs>
        <prefer-application-packages>
            <package-name>org.slf4j.*</package-name>
            <package-name>org.springframework.*</package-name>
            <package-name>com.ecwid.consul.*</package-name>
            <!-- jsr311 -->
            <package-name>javax.ws.rs.*</package-name>
            <!-- javassist -->
            <package-name>javassist.*</package-name>
            <!-- aop repackaged -->
            <package-name>org.aopalliance.*</package-name>
            <!-- jersey 2 -->
            <package-name>jersey.repackaged.*</package-name>
            <package-name>org.glassfish.jersey.*</package-name>
            <package-name>com.sun.research.ws.wadl.*</package-name>
            <!-- hk2 -->
            <package-name>org.glassfish.hk2.*</package-name>
            <package-name>org.jvnet.hk2.*</package-name>
            <package-name>org.jvnet.tiger_types.*</package-name>
        </prefer-application-packages>

        <prefer-application-resources>
            <resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
            <resource-name>META-INF/services/javax.ws.rs.ext.RuntimeDelegate</resource-name>
            <!-- jersey -->
            <resource-name>META-INF/services/org.glassfish.jersey.*</resource-name>
            <resource-name>org.glassfish.jersey.*</resource-name>
            <resource-name>jersey.repackaged.*</resource-name>
            <!-- hk2 -->
            <resource-name>META-INF/services/org.glassfish.hk2.*</resource-name>
        </prefer-application-resources>
    </container-descriptor>
    <jsp-descriptor>
        <page-check-seconds>-1</page-check-seconds>
    </jsp-descriptor>
</weblogic-web-app>

When I run the consul client as a standalone app it run and register to the consul server fine. But when the consul client run with weblogic with each manage server, the application starts fine but it never get register into the consul server. I don't see any exception in the logs that can explain the root cause.

When I run the client as a standalone I can see in the logs how it get register into the server.

I also tried to shutdown the consul server in order to see what happens. The result is that I get an exception telling me that the client cannot reach the server. So it tells me that the client is trying to get to the server in some way.

Any idea why this is happening? Once I tried to do the same with eureka and had no issues.

Thanks,

Angelo G
  • 1
  • 2

0 Answers0