Unable to find the path PostgreSQLContainer testContainers












2















I am unable to find my resource map when using Test Containers, in Postgres version.
I am trying something like it:



     private static PostgreSQLContainer postgresqlContainer = new PostgreSQLContainer("postgres")
.withDatabaseName(DATABASE_NAME)
.withUsername(USER)
.withPassword(PASSWORD);

@ClassRule
@BeforeAll
public static void initContainer() {
postgresqlContainer.withExposedPorts(5432);

postgresqlContainer.withClasspathResourceMapping("../../../../../../../create.sh",
"/docker-entrypoint-initdb.d/00_create.sh",
BindMode.READ_ONLY);
postgresqlContainer.start();
}


However, I can't find the file. I even tried to include the script create.sh in the same directory, but it can't be found:



java.lang.IllegalArgumentException: Resource with path ../../../../../../../create.sh could not be found on any of these classloaders



Project Structure



enter image description here



Anyone with the same issue?










share|improve this question





























    2















    I am unable to find my resource map when using Test Containers, in Postgres version.
    I am trying something like it:



         private static PostgreSQLContainer postgresqlContainer = new PostgreSQLContainer("postgres")
    .withDatabaseName(DATABASE_NAME)
    .withUsername(USER)
    .withPassword(PASSWORD);

    @ClassRule
    @BeforeAll
    public static void initContainer() {
    postgresqlContainer.withExposedPorts(5432);

    postgresqlContainer.withClasspathResourceMapping("../../../../../../../create.sh",
    "/docker-entrypoint-initdb.d/00_create.sh",
    BindMode.READ_ONLY);
    postgresqlContainer.start();
    }


    However, I can't find the file. I even tried to include the script create.sh in the same directory, but it can't be found:



    java.lang.IllegalArgumentException: Resource with path ../../../../../../../create.sh could not be found on any of these classloaders



    Project Structure



    enter image description here



    Anyone with the same issue?










    share|improve this question



























      2












      2








      2








      I am unable to find my resource map when using Test Containers, in Postgres version.
      I am trying something like it:



           private static PostgreSQLContainer postgresqlContainer = new PostgreSQLContainer("postgres")
      .withDatabaseName(DATABASE_NAME)
      .withUsername(USER)
      .withPassword(PASSWORD);

      @ClassRule
      @BeforeAll
      public static void initContainer() {
      postgresqlContainer.withExposedPorts(5432);

      postgresqlContainer.withClasspathResourceMapping("../../../../../../../create.sh",
      "/docker-entrypoint-initdb.d/00_create.sh",
      BindMode.READ_ONLY);
      postgresqlContainer.start();
      }


      However, I can't find the file. I even tried to include the script create.sh in the same directory, but it can't be found:



      java.lang.IllegalArgumentException: Resource with path ../../../../../../../create.sh could not be found on any of these classloaders



      Project Structure



      enter image description here



      Anyone with the same issue?










      share|improve this question
















      I am unable to find my resource map when using Test Containers, in Postgres version.
      I am trying something like it:



           private static PostgreSQLContainer postgresqlContainer = new PostgreSQLContainer("postgres")
      .withDatabaseName(DATABASE_NAME)
      .withUsername(USER)
      .withPassword(PASSWORD);

      @ClassRule
      @BeforeAll
      public static void initContainer() {
      postgresqlContainer.withExposedPorts(5432);

      postgresqlContainer.withClasspathResourceMapping("../../../../../../../create.sh",
      "/docker-entrypoint-initdb.d/00_create.sh",
      BindMode.READ_ONLY);
      postgresqlContainer.start();
      }


      However, I can't find the file. I even tried to include the script create.sh in the same directory, but it can't be found:



      java.lang.IllegalArgumentException: Resource with path ../../../../../../../create.sh could not be found on any of these classloaders



      Project Structure



      enter image description here



      Anyone with the same issue?







      java postgresql testcontainers






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 26 '18 at 14:00







      Julia Bel

















      asked Nov 26 '18 at 12:16









      Julia BelJulia Bel

      498




      498
























          2 Answers
          2






          active

          oldest

          votes


















          1














          The usage of withClasspathResourceMapping is when you have a classpath set. In my case, I didn't have and this method doesn't work. As replacement, I tried with addFileSystemBind and worked just fine:



          postgresqlContainer.addFileSystemBind(scriptsPath + File.separator + "create.sh",
          "/docker-entrypoint-initdb.d/00_create.sh",
          BindMode.READ_ONLY);





          share|improve this answer































            0














            withClasspathResourceMapping uses ClassLoader#getResource.
            The argument is not relative to your class. Instead, it uses current classpath.
            In your case, it should work with:



            withClasspathResourceMapping("/db/create.sh", "/docker-entrypoint-initdb.d/00_create.sh")





            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53480946%2funable-to-find-the-path-postgresqlcontainer-testcontainers%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              1














              The usage of withClasspathResourceMapping is when you have a classpath set. In my case, I didn't have and this method doesn't work. As replacement, I tried with addFileSystemBind and worked just fine:



              postgresqlContainer.addFileSystemBind(scriptsPath + File.separator + "create.sh",
              "/docker-entrypoint-initdb.d/00_create.sh",
              BindMode.READ_ONLY);





              share|improve this answer




























                1














                The usage of withClasspathResourceMapping is when you have a classpath set. In my case, I didn't have and this method doesn't work. As replacement, I tried with addFileSystemBind and worked just fine:



                postgresqlContainer.addFileSystemBind(scriptsPath + File.separator + "create.sh",
                "/docker-entrypoint-initdb.d/00_create.sh",
                BindMode.READ_ONLY);





                share|improve this answer


























                  1












                  1








                  1







                  The usage of withClasspathResourceMapping is when you have a classpath set. In my case, I didn't have and this method doesn't work. As replacement, I tried with addFileSystemBind and worked just fine:



                  postgresqlContainer.addFileSystemBind(scriptsPath + File.separator + "create.sh",
                  "/docker-entrypoint-initdb.d/00_create.sh",
                  BindMode.READ_ONLY);





                  share|improve this answer













                  The usage of withClasspathResourceMapping is when you have a classpath set. In my case, I didn't have and this method doesn't work. As replacement, I tried with addFileSystemBind and worked just fine:



                  postgresqlContainer.addFileSystemBind(scriptsPath + File.separator + "create.sh",
                  "/docker-entrypoint-initdb.d/00_create.sh",
                  BindMode.READ_ONLY);






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 27 '18 at 19:45









                  Julia BelJulia Bel

                  498




                  498

























                      0














                      withClasspathResourceMapping uses ClassLoader#getResource.
                      The argument is not relative to your class. Instead, it uses current classpath.
                      In your case, it should work with:



                      withClasspathResourceMapping("/db/create.sh", "/docker-entrypoint-initdb.d/00_create.sh")





                      share|improve this answer




























                        0














                        withClasspathResourceMapping uses ClassLoader#getResource.
                        The argument is not relative to your class. Instead, it uses current classpath.
                        In your case, it should work with:



                        withClasspathResourceMapping("/db/create.sh", "/docker-entrypoint-initdb.d/00_create.sh")





                        share|improve this answer


























                          0












                          0








                          0







                          withClasspathResourceMapping uses ClassLoader#getResource.
                          The argument is not relative to your class. Instead, it uses current classpath.
                          In your case, it should work with:



                          withClasspathResourceMapping("/db/create.sh", "/docker-entrypoint-initdb.d/00_create.sh")





                          share|improve this answer













                          withClasspathResourceMapping uses ClassLoader#getResource.
                          The argument is not relative to your class. Instead, it uses current classpath.
                          In your case, it should work with:



                          withClasspathResourceMapping("/db/create.sh", "/docker-entrypoint-initdb.d/00_create.sh")






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 29 '18 at 9:27









                          bsideupbsideup

                          46638




                          46638






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53480946%2funable-to-find-the-path-postgresqlcontainer-testcontainers%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

                              Calculate evaluation metrics using cross_val_predict sklearn

                              Insert data from modal to MySQL (multiple modal on website)