Injeção de DAO no construtor do Controller não funciona [Resolvido]

Oi pessoal!
Tenho uma classe DAO anotada desta forma:

@Component
@RequestScoped
public class FotoDAO {
// métodos aqui
}

Estou injetando no construtor do Controller desta forma:

@Resource
public class FotoController {	
private FotoDAO fotoDAO;
// outras classes
public FotoController(Imagens imagens,Validator validator, FotoDAO fotoDAO ,Result result, ImovelDAO imovelDAO) {   
	    this.imagens = imagens;	 
	    this.result = result;
	    this.validator = validator;
	    this.imovelDAO = imovelDAO;
	    this.fotoDAO = fotoDAO;
	}

O problema é que este método não funciona com a injeção feita acima:

public void remove(Long idFoto) {
		  Foto foto = fotoDAO.carrega(idFoto); // NullPointerException nesta linha da fotoDAO.
		  imagens.remove(foto);		  
		  fotoDAO.remove(foto);		  
		  // mensagem de Foto removida com sucesso
		  result.include("mensagem", "Foto removida com sucesso");
		  // redirecionamento para a página de adição de fotos
		  result.use(Results.logic()).redirectTo(FotoController.class).adiciona(idImovel);
	  }

Tomo nullPointerException na linha da fotoDAO.
Só funciona se eu instanciar FotoDAO:

public void remove(Long idFoto) {
  FotoDAO fotoDAO = new FotoDAO();		  
Foto foto = fotoDAO.carrega(idFoto);
		  imagens.remove(foto);		  
		  fotoDAO.remove(foto);		  
		  // mensagem de Foto removida com sucesso
		  result.include("mensagem", "Foto removida com sucesso");
		  // redirecionamento para a página de adição de fotos
		  result.use(Results.logic()).redirectTo(FotoController.class).adiciona(idImovel); // não dá pra redirecionar pra adiciona() pq o método remove() não passa id de imóvel por parâmetro, precisaria voltar pra mesma JSP que é adiciona.jsp.
	  }

Ai funciona.
O outro problema é o que eu comentei na linha do Results.
Abração!

provavelmente o cara q instancia o FotoController ta passando o parametro do dao como null, da uma olhada nisso

Você está usando VRaptor? Teoricamente, deveria carregar todas as classes dentro de /WEB-INF/classes. Pode não dar certo por dois motivos: a) o seu dao está dentro de um jar ou; b) a sua configuração em web.xml está problemática.

Estou usando VRaptor 3.1.1, o estranho é que fotoDAO está funcionando em outros métodos dentro deste mesmo controller. Pensei em se tratar de problema no método carrega em FotoDAO, mas está direitinho:

public Foto carrega(Long idFoto) {
		return (Foto) this.session.load(Foto.class, idFoto);		
	}

É só nesse método, onde o fotoDAO.carrega(idFoto) vêm null.

se essa é uma sessão do hibernate então é estranho a função load retorna null, pois ela considera que o objeto existe e geraria um erro se o id ñ existisse na base de dados, verifica se o valor passado pelo id, e se ele realmente existe na base de dados

flw, t+

Opa, valeu pela ajuda pessoal.
O valor estava sendo passado sim, eu rodei em modo debug e vi os dados, só o fotoDAO vinha null, mas ai troquei o jar do VRaptor pro 3.1.2 e agora está funcionando. O.o
Abraço!