如何将春豆注入球衣的资源类?

问题描述 投票:1回答:1

首先,我定义一个球衣资源,它定义一个类GetAllProgramDesc,然后将一个Java bean“ IDataDevProgram”注入其中。

   @Path("/datadev")
   public class GetAllProgramDesc {


private IDataDevProgram dataProgram;

public IDataDevProgram getDataProgram() {
    return dataProgram;
}

public void setDataProgram(IDataDevProgram dataProgram) {
    this.dataProgram = dataProgram;
}


// The Java method will produce content identified by the MIME Media
// type "text/plain"
@GET @Path("/mbpprograms") 
@Produces("application/json")
public String getClichedMessage() {
    // Return some cliched textual content
    List<MbpProgram> list=dataProgram.showMbpProgramList(21294551);
    return JSONObject.toJSONString(list);
}   

}

然后我想将Java Bean注入jersey资源类中:

<bean id="dataDevProgram" class="com.taobao.gemstone.data.mbpapi.datadev.DataDevProgram">
    <property name="mDBops" ref="dataDevDBOps" />
    <property name="sqlManager" ref="sqlManger" />
    <property name="actionManager" ref="actionManger" />
    <property name="dataManager" ref="dataManageImpl" />
    <property name="constant" ref="constantproperty"/>
</bean>

<bean id="datadevrest"    class="com.taobao.gemstone.data.mbpapi.restresources.GetAllProgramDesc">
    <property name="dataProgram" ref="dataDevProgram" />
</bean>

但是,当我向该网址发送查询时,整个过程崩溃如下:

java.lang.NullPointerExceptioncom.taobao.gemstone.data.mbpapi.restresources.GetAllProgramDesc.getClichedMessage(GetAllProgramDesc.java:48)sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)java.lang.reflect.Method.invoke(Method.java:601)

有什么方法可以解决这个问题?

java spring jersey
1个回答
2
投票

如果您想在Jersey使用Spring,可以使用以下选项之一:

@Context ServletContext context;插入资源类,

然后使用代码,例如:

WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(context); IDataDevProgram dataProgram = applicationContext.getBean(IDataDevProgram .class);

或者,您也可以将球衣支持用于IoC容器:

@InjectParam IDataDevProgram dataProgram

您将不得不使用jersey-spring贡献并在SpringServlet中应用web.xml,有许多简短的教程说明了如何做到这一点

© www.soinside.com 2019 - 2024. All rights reserved.