Jersey 2中的扩展WADL支持:Provider <saxparserfactory>的注入问题

时间:2016-05-27 15:53:53

标签: osgi guice jersey-2.0 wadl hk2

我参与了在OSGI环境(Equinox)中部署的Web应用程序。 WAR部署在Jetty 9 Bundle中。该应用程序是使用Guice作为注入框架的JAX RS 2.0应用程序(Jersey 2)。我使用guice bridge来实现这一目标。

我有一个REST资源,其中省略了WADL注释:

@Context
private Provider<SAXParserFactory> saxFactoryProvider;

@javax.ws.rs.GET
@javax.ws.rs.Produces(javax.ws.rs.core.MediaType.TEXT_PLAIN)
public String get() {
    return "Hello REST Guice" + saxFactoryProvider.get();
}

这是一个测试资源,用于检查是否注入了saxFactoryProvider,并且是这种情况,实现是org.glassfish.jersey.jaxb.in​​ternal.SecureSaxParserFactory

我的扩展WADL生成器配置如下:

@Override
public List<WadlGeneratorDescription> configure() {

    return generator(WadlGeneratorApplicationDoc.class).prop(
                "applicationDocsStream", "/application-doc.xml")
            .generator(WadlGeneratorGrammarsSupport.class).prop(
                "grammarsStream", "/application-grammars.xml")
           .generator(WadlGeneratorResourceDocSupport.class).prop(                    "resourceDocStream", "/resourcedoc.xml")

             .descriptions();
}

以下类中存在Null指针异常,因为saxFactoryProvider为null,即使它的注入方式与之前提到的相同:org.glassfish.jersey.server.wadl.internal.generators.WadlGeneratorApplicationDoc.init(WadlGeneratorApplicationDoc.java) :133)

关于原因的任何想法?

0 个答案:

没有答案