Я пытаюсь понять, как мы должны настраивать веб-приложение. Теперь у меня есть простой Gradle проект со встроенным причаломМестоположение Java web.xml и пристань
Зависимости:
dependencies {
compile('org.eclipse.jetty:jetty-servlet:9.3.10.v20160621')
compile('org.eclipse.jetty:jetty-webapp:9.3.10.v20160621')
testCompile group: 'junit', name: 'junit', version: '4.11'
}
Применения основное:
package test;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
public class App {
public static void main(String[] args) throws Exception {
System.out.println(">> Running");
WebAppContext webAppContext = new WebAppContext();
webAppContext.setDescriptor("src/main/resources/WEB-INF/web.xml");
webAppContext.setResourceBase("/");
webAppContext.setContextPath("/");
Server server = new Server(8080);
server.setHandler(webAppContext);
server.start();
server.join();
}
}
В web.xml я определил только реализацию контекста сервлета найти если он был схвачен с приложением.
Моя проблема: webAppContext.setDescriptor("src/main/resources/WEB-INF/web.xml")
Jetty может найти web.xml только с этим странным путем.
Зачем мне нужно указывать его из папки проекта? Если я запускаю задачу jar с помощью gradle, это не будет какой-либо каталог src внутри jar.
Есть способ сделать что-то вроде: App.class.getResource("/WEB-INF/web.xml")
и загрузить web.xml, связанные с classpath?