与另一个问题类似(参见Filtering static content Jersey),我想从Jetty提供静态内容。有许多类似的问题分散在广阔的互联网上,但是大多数问题都不涉及Guice,而涉及Guice的那些问题已经过时了。
我有一个现有的服务,使用Jersey(1.12)和Guice(3),具有以下
当我使用命令
如何在不影响服务的情况下提供任意静态内容?(即最小的更改,不需要改变技术栈)
我有一个现有的服务,使用Jersey(1.12)和Guice(3),具有以下
web.xml
:<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_2_5.xsd" version="2.5">
<display-name>My Service</display-name>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<listener>
<listener-class>com.example.MyGuiceConfig</listener-class>
</listener>
<filter>
<filter-name>Guice Filter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Guice Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
MyGuiceConfig
看起来像这样:
public class MyGuiceConfig extends GuiceServletContextListener
{
@Override
protected Injector getInjector()
{
return Guice.createInjector(new JerseyServletModule()
{
@Override
protected void configureServlets()
{
bind(SomeResource.class);
bind(SomeDao.class).to(ConcreteSomeDao.class);
serve("/*").with(GuiceContainer.class);
}
});
}
}
当我使用命令
mvn jetty:run
来调用jetty-maven-plugin时,我的服务能够正常工作。但是,任何对静态内容的请求都会产生404错误。如何在不影响服务的情况下提供任意静态内容?(即最小的更改,不需要改变技术栈)