首页 > 解决方案 > GrizzlyTestContainer 的 ServletContext

问题描述

TestContainer 是否可以像以下情况一样从 ServletContext 接收数据?

public class LinkResourceTest extends JerseyTest {
    @Override
    protected Application configure() {
        ResourceConfig config = new ResourceConfig(LinkResource.class);

        config.register(StatusResponseFilter.class);
        config.register(JacksonFeature.class);
        config.register(MultiPartFeature.class);
        config.register(ExceptionMapperFeature.class);
        config.register(JacksonContextResolver.class);
        config.register(DatabaseFeature.class);

        return config;
    }

    @Override
    protected void configureClient(ClientConfig config) {
        config.register(MultiPartFeature.class);
    }
}

config.register(DatabaseFeature.class);条线很麻烦,因为 DatabaseFeature 在构造函数中需要一个 ServletContext,我有它用于生产。


public class DatabaseFeature implements Feature {
    private ServletContext servletContext;

    public DatabaseFeature(@Context ServletContext servletContext) {
        this.servletContext = servletContext;
    }

    @Override
    public boolean configure(FeatureContext context) {
        context.register(new DatabaseBinding(servletContext));
        return true;
    }
}

标签: javaservletsjerseyjersey-test-framework

解决方案


推荐阅读