0
Context:

I have a webapp where I want to provide the feature of auto complete in a text box. I have kept a "dictionary.txt" file in the resources folder of my web app project (the proj structure mentioned below).

Web app structure
mywebapp
   |----src
         |----main
                |----java
                |----resources
                       |----dictionary.txt

Problem: I am trying to load the "dictionary.txt" file in the constructor of one of my controllers when the application gets deployed. However I am am getting a FileNotFoundException despite the file being placed there. Please refer the sourcecode below:

@Controller    
MyCtrl {    

public String dictionaryFile="dictionary.txt";    

@Autowired
private MyAutocompleteDictTrie dictTrie;

public MyCtrl(){
   DictionaryLoader.loadDictionary(dictTrie,dictionaryFile);
}
  // remaining controller business code here
}

public class DictionaryLoader{
  public static void loadDictionary(MyAutocompleteDictTrie trie,fileName){
    BufferedReader br=null;
    try{
    br=new BufferedReader(new FileReader(fileName));//exception occurs here
      // remaining business logic here
    }
  }
}

I am not sure how to solve this. One possible way is to use MyCtrl.class.getResourceAsStream(fileName) But am not sure if that would work while still the application is getting deployed.

raikumardipak
  • 1,461
  • 2
  • 29
  • 49

0 Answers0