Я пытаюсь получить доступ к @Service определенному классу
Интерфейсы определены, вот реализация
@Service
public class TypeServiceImpl implements TypeService {
@Autowired
TypeDAO dao;
public List<DocType> findAll() {
System.out.println("accessing findAll"); //have no appearence
return dao.findAll();
}
публичный TypeDAOImpl ()
{
System.out.println ("Построение типа DAOImpl");
}
...
}
код для DAO:
@Repository
public class TypeDAOImpl extends BaseDAO<Type, Long> implements TypeDAO{
}
BaseDAO:
public class BaseDAO<T, ID extends Serializable> extends GenericDAOImpl<T, ID> {
@Autowired
@Override
public void setSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
}
используется универсальный дао
Конфигурация для приложения загружается нормально (без предупреждений или ошибок), но когда я пытаюсь использовать службу:
@Autowired
private TypeService TypeService;
public void init() {
try {
for (Type d : TypeService.findAll()) {
System.out.println(d.getType());
}
} catch (Exception e) {
e.printStackTrace();
}
}
в приложенииContext:
<!-- Use annotations (@Autowired) for property injection -->
<context:annotation-config />
в логах:
ИНФОРМАЦИЯ: Предварительное создание синглетонов в org.springframework.beans.factory.support.DefaultListableBeanFactory@14db0e3: ... typeDAOImpl, appMain, typeServiceImpl
my web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/config/application-context.xml,classpath:/config/datasource-context.xml</param-value>
</context-param>
<context-param>
<description>
Vaadin production mode</description>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<servlet>
<servlet-name>My Application</servlet-name>
<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
<init-param>
<description>
Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>myapp.main.MainApp</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>My Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
...
трассировка стека "очень информативна" (я использовал vaadin в качестве веб-фреймворка)
java.lang.NullPointerException
at main.AppMain.init (AppMain.java:26)
на com.vaadin.Application.start (Application.java:497)
на com.vaadin.terminal.gwt.server.AbstractApplicationServlet.startApplication (AbstractApplicationServlet.java:1001)
на com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service (AbstractApplicationServlet.java:411)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:717)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206)
в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233)
в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191)
в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128)
в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109)
в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:293)
в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:849)
в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:583)
в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:454)
at java.lang.Thread.run (неизвестный источник)
Есть предложения?
Я добавил конструкторы для GenericDAOHibernate и TypeDAOImpl, так что, как я понимаю, эти компоненты инициализируются
...
12.10.2009 12:57:48 org.hibernate.impl.SessionFactoryImpl
ИНФОРМАЦИЯ: строительная сессия фабрики
12.10.2009 12:57:48 org.hibernate.impl.SessionFactoryObjectFactory addInstance
ИНФОРМАЦИЯ: Не привязывать фабрику к JNDI, имя JNDI не настроено
Построение общего DAO
Построение типа DAOImpl
12.10.2009 12:57:48 org.springframework.web.context.ContextLoader initWebApplicationContext
...
Я не понимаю, потому что этот конфиг работал с ZK ..