0

We want to integrate Azure Service bus Java SDk in a legacy project that has JDK 8. The project compiles fine, but spits out the following run time error:

'com/azure/spring/cloud/autoconfigure/implementation/context/AzureGlobalConfigurationEnvironmentPostProcessor has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0'

I understand that upgrading the JDK version is the recommended approach but we don't have the permission to upgrade the JDK of this legacy project. Also when I tried upgrading locally, there were tons of compiation issues.

Alternatively I've tried looking for JDK 8 compatible maven dependency versions of azure dependencies in the pom.

I have created an independent project to test this bit, it worked fine when pointed to JDK 17 but as soon as it's downgraded to JDK 8 it throws the same error.

The Azure Java SDK documentation says it supports jdk 8 onwards, but it doesn't seem to work.

Sharing my POM for your reference:

    <?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.intellidealer</groupId>
    <artifactId>versapay-mobiuso</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>versapay-mobiuso</name>
    <description>Java Intellidealer App</description>
    <properties>

        <spring-cloud-azure.version>5.5.0</spring-cloud-azure.version>
    </properties>
    <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-webflux</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-websocket</artifactId>
            <version>5.3.18</version>
        </dependency>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>com.azure.spring</groupId>
            <artifactId>spring-cloud-azure-service</artifactId>
            <version>5.5.0</version>
        </dependency>
        <dependency>
            <groupId>com.azure.spring</groupId>
            <artifactId>spring-cloud-azure-starter-servicebus</artifactId>
        </dependency>
    <dependency>
      <groupId>com.azure.resourcemanager</groupId>
      <artifactId>azure-resourcemanager-servicebus</artifactId>
      <version>2.36.0</version>
    </dependency>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-autoconfigure</artifactId>
      <version>5.5.0</version>
    </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <scope>runtime</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.azure.spring/spring-cloud-azure-starter-integration-servicebus -->
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-starter-integration-servicebus</artifactId>
      <version>5.10.0</version>
    </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
    <!--    <dependency>-->
<!--      <groupId>com.azure.resourcemanager</groupId>-->
<!--      <artifactId>azure-resourcemanager</artifactId>-->
<!--      <version>2.36.0</version>-->
<!--    </dependency>-->
  </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.azure.spring</groupId>
                <artifactId>spring-cloud-azure-dependencies</artifactId>
                <version>${spring-cloud-azure.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>8</release>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
2
  • The dependencies of spring-cloud-azure-dependencies have been compiled with JDK17+ which means you can NOT use them for JDK 8 target ... you have to check if there is a version (older version available) which supports JDK 8... furthermore the Spring Boot Version you are using is End Of Life since November 2022 (spring.io/projects/spring-boot#support) also not on the most recent version of 2.6.X line... (2.6.15?) Commented May 31, 2024 at 7:14
  • Hi thanks for pointing that out, I used an old spring boot version just so it is compatible with JDK8. Commented May 31, 2024 at 10:23

1 Answer 1

0

It looks like you are using version 5.5.0 for Spring Cloud Azure libraries. This version requires Spring Boot 3.x and Java 17 or higher. For Java 8, try using version 4.x.x.

See the Spring Cloud Azure Support Status for more details on what versions are supported.

Here's the note from the link above that documents the Java version support.

NOTE: Spring Boot 2.x requires Java 8 as minimum version, and Spring Boot 3.x requires Java 17 or higher. Please reference to Spring Framework JDK Version Range for detailed JDK version range a Spring Framework version supports.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.