У меня есть webapp с очень простым web.xml.Не удается использовать статические файлы в webapp с пружиной
<?xml version="1.0"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
</web-app>
Я установить это свойство contextConfigLocation так, что класс org.glassfish.jersey.server.spring.SpringWebApplicationInitializer не добавляет ContextLoadListener и RequestContextListener, как я хотел бы сделать это вручную.
Тогда у меня есть свой собственный класс WebApplicationInitializer, чтобы добавлять сервлеты программным способом, а не через web.xml.
public class MyWebAppInitializer implements WebApplicationInitializer {
private static final Logger LOGGER = Logger.getLogger(SpringWebApplicationInitializer.class.getName());
@Override
public void onStartup(ServletContext sc) throws ServletException {
//Setup spring listeners
{
LOGGER.config(LocalizationMessages.REGISTERING_CTX_LOADER_LISTENER());
sc.addListener(ContextLoaderListener.class);
sc.addListener(RequestContextListener.class);
}
//Jersey Rest Servlet
{
final ServletRegistration.Dynamic registration = sc.addServlet(ServletContainer.class.getName(), ServletContainer.class);
registration.setInitParameter("javax.ws.rs.Application", com.tervita.portal.RestApplication.class.getName());
registration.addMapping("/rest/*");
}
//Normal Servlets
{
final ServletRegistration.Dynamic registration = sc.addServlet(LoginAction.class.getName(), LoginAction.class);
registration.addMapping("/LoginAction");
}
//Apache Default Servlet
{
ServletRegistration.Dynamic dispatcher = sc.addServlet("dispatcher", DispatcherServlet.class);
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/test");
}
}
}
Когда я запускаю мой веб-приложение я не могу получить доступ к статическим файлам я добавил, такие как /css/app/ui-grid.css.
Когда я бегу Tomcat я получаю это хотя ...
Так что я путаюсь у меня нет каких-либо записей в моем сервлета конфигурации, которые замещают сервлет по умолчанию, который в Tomcat должен быть/*. Почему сервлет по умолчанию не попадает и не обслуживает мой контент?
в консоли администратора tomcat, можете ли вы увидеть контекст (путь), на который развернуто ваше веб-приложение? возможно, он развернут в корневом контексте ('/') вместо '/ tervita360'? – ochi
Да, это определенно в/tervita360. Также мой тестовый сервлет доступен. – benstpierre
Что касается содержимого вашего файла WAR? они правильны? вы заглянули в файл WAR, чтобы подтвердить, что все необходимые файлы там? - просто осветить основы на данный момент – ochi