【发布时间】:2014-06-25 09:29:33
【问题描述】:
我是 Spring Framework 的新手。我在 spring 中尝试过以下示例。
@Path("/XZY")
@Service
@Transactional
public class XZY {
@Autowired
SampleDAO sampleDao;
@Autowired
TestDAO testDao;
@Autowired
XZYinterface xzyinterface;
@POST
@Produces("text/plain")
@Path("/checkservice")
public Response XZYservice(@FormParam("Code") String Code,
@FormParam("source") String source,
@FormParam("value") String value) {
//return xzyinterface.checkXYZService(Code,sourceName,source);
XZYinterface xyz = ServiceFactory.getXZY(999);
return xyz.checkXYZService(Code,sourceName,source);
}
}
以下代码将用于创建单例对象
public class Singleton {
private static sampleA sampleClassA=null;
private static SampleB sampleClassB=null;
public static XZYAbstract getXZY(long id){
if(id == 999){
if(sampleClass == null){
sampleClassA = new sampleA();
}
return sampleClass;
}
if(id == 9999){
sampleClassB = new sampleA();
}
return sampleClassB;
}
}
界面
public interface XZYinterface {
Response XZYservice(String Code, String source,String value)
}
抽象类和实现接口
public class XZYAbstract implements XZYinterface {
public XZYAbstract(){
super();
}
@Autowired
SampleDAO sampleDao;
@Autowired
TestDAO testDao;
public Response checkXYZService(String Code,String source,String value){
String sample = sampleDao.getValue(code);
//..source code
}
}
以下类扩展抽象类。
public class sampleA extends XZYAbstract {
//some methods.
}
如果我运行应用程序,它会引发以下错误
SEVERE [com.sun.jersey.spi.container.ContainerResponse] The RuntimeException could not be mapped to a response, re-throwing to the HTTP container: java.lang.NullPointerException
at com.test.xyz.XZYAbstract.checkXYZService(XZYAbstract.java:112) [:]
at com.test.XYZ.XZYservice(XZY.java:140) [:]
如果我在没有单例对象的情况下直接调用,则使用自动连接 (//return xzyinterface.checkXYZService(Code,sourceName,source);) 正确初始化值并且它工作正常。 从单例对象抛出,值(sampleDAo,testDao)未正确初始化。
如何解决这个错误?
【问题讨论】: