【发布时间】:2019-03-26 12:15:42
【问题描述】:
这些项目在 Tomcat 服务器上运行。
项目结构:(包含以下3个项目)
- 共享 - (包含通用接口) - 这不是 Spring 应用程序
- 工具包 - 主项目(项目共享的依赖项) - Spring boot
- 服务 - 子项目(使用项目共享从工具包中获取dao) - Spring boot
共享
public interface ConfigParamDAOnew {
public static final String CLASS_NAME = "paramDAO";
String getParamValueByName(String name);
}
工具包
@Component
public class ParamModel_Global_DAO_Impl implements ConfigParamDAOnew {
@Autowired
ParamModel_GlobalJPARepository jpa;
@Autowired
ServletContext context;
@Override
public String getParamValueByName(String name) {
return jpa.findByName(name).get().getValue();
}
@PostConstruct
public void setup() {
context.setAttribute(ConfigParamDAOnew.CLASS_NAME, this);
}
}
服务
@Service
public class NewConfigParamDAO {
@Autowired
ServletContext servletContext;
ConfigParamDAOnew dao;
public NewConfigParam getParam(String name) {
loadConfigParamDAO();
return new NewConfigParam(name, dao.getParamValueByName(name));
}
private void loadConfigParamDAO() {
dao = (ConfigParamDAOnew)
servletContext.getAttribute(ConfigParamDAOnew.CLASS_NAME);
}
> Caused by: java.lang.NullPointerException at > de.usu.si.toolkit.config.NewConfigParamDAO.getParam(NewConfigParamDAO.java:35) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) at > org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:365) > at > org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:308) > at > org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:135) > ... 27 more
在从工具包项目中询问 dao 后,初始启动失败。在哪里出错之前这对我有用?
【问题讨论】:
标签: spring-boot tomcat servlets interface microservices