Pessoal,
estou tentando fazer o exemplo de login em Webwork de um artigo aqui do GUJ e esta dando erro. O IoC não esta funcionando, bem, como no artigo, tenho o components.xml no classpath da app:
<components>
<component>
<scope>session</scope>
<class>com.foo.component.UserSession</class>
<enabler>com.foo.component.UserSessionAware</enabler>
</component>
</components>
a interface UserSessionAware:
package com.foo.component;
public interface UserSessionAware {
public void setUserSession( UserSession userSession );
public UserSession getUserSession();
}
o UserSession:
package com.foo.component;
import com.foo.model.User;
public class UserSession implements java.io.Serializable {
private User user;
public void setUser( User user ) {
this.user = user;
}
public User getUser() {
return user;
}
}
e a SystemAction, q implementa a UserSessionAware e tem um UserSession:
package com.foo.action;
import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.xwork.ModelDriven;
import com.foo.component.UserSession;
import com.foo.component.UserSessionAware;
public abstract class SystemAction extends ActionSupport
implements ModelDriven, UserSessionAware {
protected UserSession userSession;
protected SystemAction() { }
public void setUserSession( UserSession userSession ) {
this.userSession = userSession;
}
public UserSession getUserSession() {
return userSession;
}
public abstract Object getModel();
}
e aqui esta o erro, na action de login q usa esse userSession herdado da SystemAction para setar o User qnd o login estiver certo:
package com.foo.action;
import com.foo.model.User;
public class LoginAction extends SystemAction
implements DisableSecurityAction {
private User model = new User();
public String execute() {
if ( !model.getUsername().equals( "matheus" ) ) {
addActionError( "Ocorreu um erro" );
addFieldError( "username", "Usuário inválido" );
return ERROR;
}
if ( !model.getPassword().equals( "matheus" ) ) {
addActionError( "Ocorreu um erro" );
addFieldError( "password", "Senha inválida" );
return ERROR;
}
this.userSession.setUser( model );
return SUCCESS;
}
public Object getModel() {
return model;
}
}
ok, mas na linha this.userSession.setUser( model ) esta estourando uma NPE, então a conclusão q cheguei foi q o IoC não ta funfando… alguém pode me ajudar? :roll: