Эти проекты выполняются на сервере Tomcat.
Структура проекта: (содержит следующие 3 проекта)
- shared - (содержитобщие интерфейсы) - Это не приложение Spring
- toolkit - Основной проект (зависимость от общего проекта) - Spring boot
- service - subproject (используйте project shared для получения dao из инструментария) - Spring boot
shared
public interface ConfigParamDAOnew {
public static final String CLASS_NAME = "paramDAO";
String getParamValueByName(String name);
}
toolkit
@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
@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 из проекта toolkit.Это работает мне раньше, где может быть ошибка?