Je suis en train d'accéder à la classene peut pas accéder au service de printemps annoté
définie @service Les interfaces sont définies, voici une implémentation
@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 public() { System.out.println ("Construire TypeDAOImpl"); }
...
}
Code
pour 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);
}
}
utilisé la configuration generic dao pour des charges d'applications bien (pas avertir ou err), mais quand je suis en train pour utiliser le service:
@Autowired
private TypeService TypeService;
public void init() {
try {
for (Type d : TypeService.findAll()) {
System.out.println(d.getType());
}
} catch (Exception e) {
e.printStackTrace();
}
}
dans applicationContext:
<!-- Use annotations (@Autowired) for property injection -->
<context:annotation-config />
dans les journaux: INFO: singletons pré-instanciation dans org.s[email protected]14db0e3: ... typeDAOImpl, appMain, typeServiceImpl
mon 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>
...
trace de la pile est "très informationnelle" (j'ai utilisé Vaadin comme framework web)
java.lang.NullPointerException à 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 (source inconnue)
Des suggestions?
j'ai ajouté des constructeurs pour GenericDAOHibernate et TypeDAOImpl, afin que je sache, ces haricots sont initialisés ... 12.10.2009 12:57:48 org.hibernate.impl.SessionFactoryImpl INFO: usine de construction de la session 12,10. 2009 12:57:48 org.hibernate.impl.SessionFactoryObjectFactory addInstance INFO: usine ne lie pas à JNDI, aucun nom JNDI configuré la construction générique DAO Construire TypeDAOImpl 12.10.2009 12:57:48 org.springframework.web .context.ContextLoader initWebApplicationContext ...
Je ne comprends pas parce que cette config a travaillé avec ZK ..
Juste une supposition, mais avez-vous les espaces de noms appropriés ajoutés à votre contexte d'application Spring? – duffymo
Pourriez-vous ajouter le stackstrace? –
J'ai demandé cela dans un commentaire ci-dessous et, basé sur la trace de la pile ci-dessus, je demanderai à nouveau - est AppMain (qui est probablement d'où le dernier exemple de code ci-dessus - celui avec la méthode init() ' comme un haricot dans votre contexte? Parce que sinon, comment voulez-vous que le câblage automatique fonctionne? – ChssPly76