Olá pessoal...
Não to conseguindo usar inversão de controle no menta...não sei o que está acontecendo...provavalmente to fazendo algo errado porém não sei o que...eis os meus códigos...
minha interface UserDAO...
Code:
public interface UserDAO {
public User getUser (Serializable code) throws Exception;
public void saveUser (User user) throws Exception;
public void updateUser (User user) throws Exception;
public void deleteUser (User user) throws Exception;
public List listUser () throws Exception;
public List listUser (int min , int max) throws Exception;
}
meu appmanager
Code:
public class Manager extends org.mentawai.core.ApplicationManager {
private Component userDAO;
public void init () {
this.userDAO = new DefaultComponent (HibernateUserDAO.class);
}
public void loadLocales () {
//....
}
public void loadActions () {
action ("UserManagerAction" , UserManagerAction.class , "saveUser")
.on (SUCCESS , redir ("index.jsp"))
.on (ERROR , fwd ("mentawai/UserManager.saveForm.jsp"))
.filter (new UserManagerValidation ())
.filter (new VOFilter (User.class , "user"))
.filter (new IoCFilter (userDAO , "userDao" , REQUEST))
.filter (new InjectionFilter (true))
.filter (new hibernateFilter ());
minha action...
Code:
public class UserManagerAction extends BaseAction implements ModelDriven {
private UserManager service = new UserManager ();
public Object getModel () {
return service;
}
public String saveUser () throws Exception {
service.saveUser ((User) input.getValue ("user"));
return SUCCESS;
}
public String execute () throws Exception {
throw new ActionException ();
}
}
meu manager...
Code:
public class UserManager {
private UserDAO userDAO = null;
public void setUserDAO (UserDAO userDAO) {
this.userDAO = userDAO;
}
public void saveUser (User user) throws Exception {
userDAO.saveUser (user);
}
}
meu filtro do hibernate...
Code:
public class hibernateFilter implements Filter {
public String filter (InvocationChain action) throws Exception {
HNUtil.beginTransaction ();
String result = action.invoke ();
try {
HNUtil.commitTransaction ();
}
catch (Exception exception) {
HNUtil.rollbackTransaction ();
throw new Exception (exception);
}
finally {
HNUtil.closeSession ();
}
return result;
}
public void destroy () {
}
}
quando chamo o método service.saveUser () da action ele lança a seguinte exceção...
Code:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: java.lang.reflect.InvocationTargetException
org.mentawai.core.Controller.service(Controller.java:313)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.mentawai.core.ActionException: java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:105)
br.com.eloops.mentawai.filter.HNFilter.filter(HNFilter.java:13)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:88)
org.mentawai.filter.InjectionFilter.filter(InjectionFilter.java:296)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:88)
org.mentawai.filter.IoCFilter.filter(IoCFilter.java:118)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:88)
org.mentawai.filter.VOFilter.filter(VOFilter.java:282)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:88)
org.mentawai.filter.ValidationFilter.filter(ValidationFilter.java:147)
org.mentawai.core.InvocationChain.invoke(InvocationChain.java:88)
org.mentawai.core.Controller.invokeAction(Controller.java:340)
org.mentawai.core.Controller.service(Controller.java:288)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
alguem tem alguma idéia...que cagada eu to fazendo???
ps. desculpem o tópico gigantesco cheio de código!!