CANNOT register maven jersey service as Eureka Client

27 views Asked by At

I am aware of some dependencies problem between Spring Cloud and Jersey.

I need to register my TeaStore service (currently trying with one of them) made in Maven, Jakarta, Jersey and NOT spring.

This is the original pom.xml

<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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>registry</artifactId>
    <packaging>war</packaging>
    <name>TeaStore Registry</name>
    <url>http://descartes.tools</url>

    <distributionManagement>
        <repository>
            <id>se-uw-nexus</id>
            <name>Releases</name>
            <url>https://se4.informatik.uni-wuerzburg.de/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>se-uw-nexus</id>
            <name>Snapshots</name>
            <url>https://se4.informatik.uni-wuerzburg.de/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    <repositories>
        <repository>
            <id>se-uw-nexus</id>
            <name>Public Repositories</name>
            <url>https://se4.informatik.uni-wuerzburg.de/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <!-- Internal Dependencies -->
        <dependency>
            <groupId>tools.descartes.teastore</groupId>
            <artifactId>entities</artifactId>
            <version>${teastoreversion}</version>
        </dependency>

        <dependency>
            <groupId>jakarta.activation</groupId>
            <artifactId>jakarta.activation-api</artifactId>
            <version>2.0.1</version>
        </dependency>

        <dependency> <!-- Logging framework also used by ribbon -->
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>

        <!-- WebApp Dependencies -->
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-hk2</artifactId>
            <version>3.0.2</version>
        </dependency>

        <!-- Dependencies only needed for compilation -->
        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-api</artifactId>
            <version>9.0.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>tools.descartes.teastore.registry</finalName>
        <plugins>
            <plugin>
                <!-- Attach classes so that registryclient can import registry for testing. -->
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.1</version>
                <configuration>
                    <attachClasses>true</attachClasses>
                    <classesClassifier>classes</classesClassifier>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <parent>
        <groupId>tools.descartes.teastore</groupId>
        <artifactId>parent</artifactId>
        <version>${teastoreversion}</version>
        <relativePath>../..</relativePath>
    </parent>
</project>

I have already tried to add simple spring cloud dependency, annotation and application properties but it does not work.

Now I excluded jersey form the Spring dependencies having this pom:

<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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>registry</artifactId>
    <packaging>war</packaging>
    <name>TeaStore Registry</name>
    <url>http://descartes.tools</url>

    <distributionManagement>
        <repository>
            <id>se-uw-nexus</id>
            <name>Releases</name>
            <url>https://se4.informatik.uni-wuerzburg.de/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>se-uw-nexus</id>
            <name>Snapshots</name>
            <url>https://se4.informatik.uni-wuerzburg.de/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    <repositories>
        <repository>
            <id>se-uw-nexus</id>
            <name>Public Repositories</name>
            <url>https://se4.informatik.uni-wuerzburg.de/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <version>2.1.5.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.glassfish.jersey.containers</groupId>
                    <artifactId>jersey-container-servlet</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.glassfish.jersey.media</groupId>
                    <artifactId>jersey-media-json-jackson</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.glassfish.jersey.core</groupId>
                    <artifactId>jersey-server</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.glassfish.jersey.inject</groupId>
                    <artifactId>jersey-hk2</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Internal Dependencies -->
        <dependency>
            <groupId>tools.descartes.teastore</groupId>
            <artifactId>entities</artifactId>
            <version>${teastoreversion}</version>
        </dependency>

        <dependency>
            <groupId>jakarta.activation</groupId>
            <artifactId>jakarta.activation-api</artifactId>
            <version>2.0.1</version>
        </dependency>

        <dependency> <!-- Logging framework also used by ribbon -->
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>

        <!-- WebApp Dependencies -->
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.15.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-hk2</artifactId>
            <version>3.1.3</version>
        </dependency>

        <!-- Dependencies only needed for compilation -->
        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-api</artifactId>
            <version>9.0.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>tools.descartes.teastore.registry</finalName>
        <plugins>
            <plugin>
                <!-- Attach classes so that registryclient can import registry for testing. -->
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.1</version>
                <configuration>
                    <attachClasses>true</attachClasses>
                    <classesClassifier>classes</classesClassifier>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <parent>
        <groupId>tools.descartes.teastore</groupId>
        <artifactId>parent</artifactId>
        <version>${teastoreversion}</version>
        <relativePath>../..</relativePath>
    </parent>
</project>

In the logs now, I do not receive any error but even nothing from the Discovery Service.

This is my log after running the service:

25-Nov-2023 15:05:57.622 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/10.0.7
25-Nov-2023 15:05:57.633 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Jun 8 2021 16:31:06 UTC
25-Nov-2023 15:05:57.633 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.0.7.0
25-Nov-2023 15:05:57.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
25-Nov-2023 15:05:57.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            6.4.16-linuxkit
25-Nov-2023 15:05:57.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
25-Nov-2023 15:05:57.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/local/openjdk-11
25-Nov-2023 15:05:57.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.11+9
25-Nov-2023 15:05:57.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
25-Nov-2023 15:05:57.635 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
25-Nov-2023 15:05:57.635 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
25-Nov-2023 15:05:57.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
25-Nov-2023 15:05:57.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
25-Nov-2023 15:05:57.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:/kieker/agent/agent.jar
25-Nov-2023 15:05:57.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
25-Nov-2023 15:05:57.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dkieker.monitoring.configuration=/kieker/config/kieker.monitoring.properties
25-Nov-2023 15:05:57.657 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Daj.weaving.verbose=false
25-Nov-2023 15:05:57.658 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.aspectj.weaver.loadtime.configuration=aop.xml
25-Nov-2023 15:05:57.659 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dkieker.monitoring.skipDefaultAOPConfiguration=true
25-Nov-2023 15:05:57.659 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Daj.weaving.loadersToSkip=java.net.URLClassLoader
25-Nov-2023 15:05:57.659 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true
25-Nov-2023 15:05:57.659 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
25-Nov-2023 15:05:57.659 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
25-Nov-2023 15:05:57.659 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
25-Nov-2023 15:05:57.659 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
25-Nov-2023 15:05:57.660 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
25-Nov-2023 15:05:57.660 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
25-Nov-2023 15:05:57.660 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
25-Nov-2023 15:05:57.667 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.30] using APR version [1.6.5].
25-Nov-2023 15:05:57.668 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
25-Nov-2023 15:05:57.679 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1d  10 Sep 2019]
25-Nov-2023 15:05:58.245 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
25-Nov-2023 15:05:58.285 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-127.0.0.1-8009"]
25-Nov-2023 15:05:58.287 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [931] milliseconds
25-Nov-2023 15:05:58.390 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
25-Nov-2023 15:05:58.390 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.0.7]
25-Nov-2023 15:05:58.406 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/tools.descartes.teastore.registry.war
[ParallelWebappClassLoader@7203c7ff] error Cannot find parent aspect for: <concrete-aspect name='kieker.monitoring.probe.aspectj.operationExecution.TargetedAspect' extends='tools.descartes.teastore.kieker.probes.AbstractOperationExecutionWithParameterAspect' perclause='null'/> in aop.xml
[ParallelWebappClassLoader@7203c7ff] error Concrete-aspect 'kieker.monitoring.probe.aspectj.operationExecution.TargetedAspect' could not be registered
[ParallelWebappClassLoader@7203c7ff] warning failure(s) registering aspects. Disabling weaver for class loader org.apache.catalina.loader.ParallelWebappClassLoader@7203c7ff
25-Nov-2023 15:05:59.361 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[main] INFO tools.descartes.teastore.registry.rest.RegistryStartup - Registry online **********
25-Nov-2023 15:05:59.976 WARNING [main] org.glassfish.jersey.server.wadl.WadlFeature.configure JAXBContext implementation could not be found. WADL feature is disabled.
25-Nov-2023 15:06:00.617 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/tools.descartes.teastore.registry.war] has finished in [2,210] ms
25-Nov-2023 15:06:00.627 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
25-Nov-2023 15:06:00.642 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-127.0.0.1-8009"]
25-Nov-2023 15:06:00.646 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [2358] milliseconds

and the @EnableEurekaClient annotation (with the correct properties that works for other services).

I really need help !!

Annotation, dependencies exclusion and properties.

Is there a way to make it registering or should I use the manually API of Eureka?

0

There are 0 answers