Я создаю веб-сервис для перевода слов между двумя языками.Слова определяются в документе xml (dictionary.xml), который находится в корне папки проекта.Служба прекрасно работает с абсолютным путем, но при тестировании с относительным путем возникает исключение FileNotFound.
Я пытался писать просто («словарь»), и это работало в проекте, где я выполнял анализ файлов xml.
Это метод:
public String translate(String word, String lang1, String lang2) throws XPathExpressionException, FileNotFoundException {
XPathFactory factory = XPathFactory.newInstance();
XPath path = factory.newXPath();
String expression = "";
if (lang1.equals("english")) {
expression = "dictionary/word/english";
} else if (lang1.equals("spanish")) {
expression = "dictionary/word/spanish";
}
XPathExpression xPathExpression = path.compile(expression);
File xmlDocument = new File("D:\\JavaLearning\\AssignmentWebService\\Translator\\dictionary.xml");
InputSource inputSource = new InputSource(new FileInputStream(xmlDocument));
Object result = xPathExpression.evaluate(inputSource, XPathConstants.NODESET);
NodeList nodeList = (NodeList) result;
String translatedWord = "";
for (int i = 0; i < nodeList.getLength(); i++) {
if (lang1.equals("english") && word.equals(nodeList.item(i).getTextContent())) {
translatedWord = nodeList.item(i).getNextSibling().getNextSibling().getTextContent();
} else if (lang1.equals("spanish") && word.equals(nodeList.item(i).getTextContent())) {
translatedWord = nodeList.item(i).getPreviousSibling().getPreviousSibling().getTextContent();
}
}
if (translatedWord.equals("")) {
translatedWord = "Word \"" + word + "\" doesn't exist in our database!";
}
return translatedWord;
}
Ошибка: вызвана: service.FileNotFoundException_Exception: dictionary.xml (система не может найти указанный файл) в