Can't find bundle for base name org.example.module.MessagesBundle, locale en

109 views Asked by At

For first time, I'm using Intellij IDEA for setting up my first Gradle project. I'm seeing the following error while reading data from resource bundle.

java.util.MissingResourceException: Can't find bundle for base name org.example.module.MessagesBundle, locale en
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1581)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:854)
    at org.example.Main.getMessageFromBundle(Main.java:19)
    at org.example.Main.main(Main.java:12)

I'm adding sample code from project.

Project structure

Main class

/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package org.example;

import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class Main {

    public static void main(String[] args) {

        System.out.println("Hello world!");
        System.out.println(getMessageFromBundle("MYCODE01", "org.example.module"));
    }

    private static String getMessageFromBundle(String code, String resourceBundle) {

        try {

            ResourceBundle bundle = ResourceBundle.getBundle(resourceBundle + ".MessagesBundle", Locale.ENGLISH);
            return bundle.getString(code);

        } catch (MissingResourceException e) {

            e.printStackTrace();
            return  "";
        }
    }
}

Resource bundle

MYCODE01=My test message

build.gradle

plugins {
    id 'java-library'
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation platform('org.junit:junit-bom:5.9.1')
    testImplementation 'org.junit.jupiter:junit-jupiter'
}

test {
    useJUnitPlatform()
}

I tried the following things to resolve missing resource bundle issue. But issue remains same.

  1. Added source root in build.gradle
sourceSets {
    main {
        java {
            srcDirs = ['src/main/java']
        }
        resources {
            srcDirs = ['src/main/resources']
        }
    }
    test {
        java {
            srcDirs = ['src/test/java']
        }
        resources {
            srcDirs = ['src/test/resources']
        }
    }
}
  1. Added source root in build.gradle
compileJava {
    sourceSets.main.java.srcDirs = ['src/main/java']
    sourceSets.main.resources.srcDirs = ['src/main/resources']
    sourceSets.test.java.srcDirs = ['src/test/java']
    sourceSets.test.resources.srcDirs = ['src/test/resources']
}
  1. Restructured project
    Restructured project
0

There are 0 answers