Как получить мой собственный XML-файл через сервлет - PullRequest
1 голос
/ 11 марта 2012

У меня есть сервлет, который использует JAXB для разборки и маршалирования XML-файла, который я сделал сам. Моя проблема в том, что я не могу разархивировать или упорядочить XML-файл, не указав полный локальный путь к XML-файлу, маршаллеру. Проблема в том, что я не могу доставить проект своему другу, без необходимости редактировать локальный путь к XML-файлу. Мой код для демаршаллинга выглядит так

ObjectFactory factory = new ObjectFactory();
CarList cl = factory.createCarList();

try {
    javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(cl.getClass().getPackage().getName());
    javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
    cl = (CarList) unmarshaller.unmarshal(new java.io.File("/Users/martin/NetBeansProjects/Web-Mandatory-Assignment-Part1/web/resources/xml/Cars.xml")); //NOI18N
} catch (javax.xml.bind.JAXBException ex) {
    java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
}

Как вы можете видеть, мне нужно использовать '/Users/martin/NetBeansProjects/Web-Mandatory-Assignment-Part1/web/resources/xml/Cars.xml' в качестве пути к файлу, но я хочу, чтобы он сделать, это использовать что-то вроде 'xml / resources / Cars.xml' вместо этого. Как я могу сделать эту работу:)

1 Ответ

3 голосов
/ 11 марта 2012

Вы можете использовать интерфейс ServletContext в пакете javax.servlet. Для доступа к экземпляру этого класса используйте следующий код:

   http_request_instance.getServletContext();

В этом интерфейсе есть полезные методы, такие как:

  • getResource(String)
  • getResourceAsStream(String)
  • getRealPath(String)

для получения дополнительной информации см .:

...