Это немного неортодоксально, но я пытаюсь выяснить, есть ли способ получить доступ к файлам, хранящимся в дереве src моих приложений apk в Android. Я пытаюсь использовать i-Jetty (реализация Jetty для Android) и вместо того, чтобы использовать его как отдельное приложение и вручную загружать мой военный файл, я бы просто испек i-jetty.
Однако, чтобы использовать (легко) стандартный html / jsp, я должен иметь возможность предоставить ему корень документа, предпочтительно в файле apk моего приложения. Я знаю, что Android специально работает для того, чтобы вы не могли (свободно) получить доступ к материалам в реальной системе, так что это может быть невозможно, но я думаю, что возможно будет получить доступ к чему-то внутри apk. Один из способов обойти это - сохранить все файлы в каталоге res и затем скопировать их на SD-карту при запуске, но это не позволит мне автоматически удалить файлы при удалении.
Чтобы дать вам представление о том, что я пробовал, в настоящее время html-файлы хранятся в org.webtext.android
Context rootContext = new Context(server_, "/", Context.SESSIONS);
rootContext.setResourceBase("org/webtext/webapp");
Возвращает ошибку 404.
final URL url = this.getClassLoader().getResource("org/webtext/webapp");
Context html = new WebAppContext(url.toExternalForm(), "/");
Возникает при возникновении исключения NullPointerException, поскольку URL-адрес не возвращается из вызова getResource.
Любые мысли будут с благодарностью!
Спасибо
Chris
Редактировать В случае, если кто-нибудь найдет это в поисках аналогичного ответа, я никогда не нашел хорошего ответа. Я использовал небольшой взлом на то, что было предложено ниже. Я создал файл war только с содержимым html / jsp (сервлеты, которые я добавил на сервер вручную и смог сохранить в дереве src), и сохранил его в папке активов. Когда приложение запускается, я копирую военный файл на SDCard. Когда приложение закрывается, я удаляю копию. Конечно, если приложение будет убито, а не изящно завершено, у меня не будет возможности удалить его, но это не так уж и сложно.