最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Spring boot application using maven build failing in Azure AKS- main "ClassNotFoundException" - Stack Overflow

programmeradmin0浏览0评论

I have deployed a spring boot application in Azure kubernetes. The application uses maven for build and works normally on my local system. But when I deploy it in AKS using github action, the pod goes into error. The log shows following error:

Exception in thread "main" java.lang.ClassNotFoundException: package com.LearnBS.JavaBS.JavaBsApplication at java.base/java.URLClassLoader.findClass(URLClassLoader.java:445) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592) at .springframework.boot.loader.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107 at .springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:467) at .springframework.boot.loader.launch.Launcher.launch(Launcher.java:99) at .springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at .springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40)

I looked at solutions provided for similar situation, but none of that is working.

Here is my POM.XML

4.0.0 .springframework.boot spring-boot-starter-parent 3.3.4 com.LearnBS JavaBS 0.0.1-SNAPSHOT

<name>JavaBS</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
    <license/>
</licenses>
<developers>
    <developer/>
</developers>
<scm>
    <connection/>
    <developerConnection/>
    <tag/>
    <url/>
</scm>
<properties>
    <java.version>17</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- .mongodb/mongodb-driver-sync -->
    <dependency>
        <groupId>.mongodb</groupId>
        <artifactId>mongodb-driver-sync</artifactId>
        <version>5.3.1</version>
    </dependency>
    <!-- .mongodb/mongodb-driver-core -->
    <dependency>
        <groupId>.mongodb</groupId>
        <artifactId>mongodb-driver-core</artifactId>
        <version>5.3.1</version>
    </dependency>

    <!-- .springframework.boot/spring-boot-starter-data-mongodb -->
    <dependency>
        <groupId>.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
        <version>3.4.2</version>
    </dependency>


    <dependency>
        <groupId>.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.2</version>
    </dependency>
</dependencies>



<build>
    <plugins>
        <plugin>
        <groupId>.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
                  <configuration>

        <mainClass>package com.LearnBS.JavaBS.JavaBsApplication</mainClass>

  </configuration>
        <!--<configuration> -->   
            <!-- <mainClass>package com.LearnBS.JavaBS.JavaBsApplication</mainClass>-->
            <!--</configuration>-->
        </plugin>

    </plugins>
</build>

And here is the workflow file:

name: Maven Package

on: push: branches: [ master ] jobs: build:

runs-on: ubuntu-latest
permissions:
  contents: read
  packages: write
  id-token: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
  uses: actions/setup-java@v4
  with:
    java-version: '17'
    distribution: 'adopt'

  
- name: Build with Maven
  run: mvn clean install spring-boot:repackage


  
- name: Docker Login
  uses: azure/docker-login@v1
  with:
    login-server: aksfirstregistry.azurecr.io
    username: xxxxxxxxxxxxx
    password: bxxxxxxxxxxxxxxxxx
- name: Set up Docker Buildx
  uses: docker/setup-buildx-action@v3
  
- name: Build and Push to ACR
  uses: docker/build-push-action@v6
  with:
    context: . 
    push: true
    tags: aksfirstregistry.azurecr.io/g********:latest
    file: Dockerfile

  # Logs in with your Azure credentials
- name: Log in to Azure
  uses: azure/login@v1
  with:
    creds: |
      {
        "clientId": xxxxxxxxxxxxxx,
        "clientSecret": xxxxxxxxxxxx,
        "tenantId": xxxxxxxxxxxx,
        "subscriptionId": xxxxxxxxxxxx;
      }
   
- name: Set AKS context
  id: set-context
  uses: azure/aks-set-context@v3
  with:
    resource-group: xxxxxxxxx
    cluster-name: xxxxxxxxxxx

- name: Setup kubectl
  id: install-kubectl
  uses: azure/setup-kubectl@v3

- name: Deploy to AKS
  id: deploy-aks
  uses: Azure/k8s-deploy@v4
  with:
    namespace: 'default'
    manifests: |
      gitmongodb.yaml
    images: aksfirstregistry.azurecr.io/gxxxxx:latest
    pull-images: false 

Any help is highly appreciated!

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论