Download e Upload FJ28

Olá pessoal, estou fazendo o exercicio da apostila fj28 VRaptor capitulo 15 - Apêndice Download e Upload.
Meu programa esa apresentando alguns erros, que desconheço e não sei o que fazer.
Bem minha classe ImagensController esta assim:

package br.com.caelum.goodbuy.controller;

import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
import java.io.File;
import br.com.caelum.goodbuy.modelo.Imagens;
import br.com.caelum.goodbuy.modelo.Produto;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.validator.Validations;

@Resource
public class ImagensController {

	private final Validator validator;
	private final Imagens imagens;
	private final Result result;

	public ImagensController(Validator validator, Imagens imagens, Result result) {
		this.validator = validator;
		this.imagens = imagens;
		this.result = result;
	}

	  public File mostra(Produto produto) {
	        return new File(pastaImagens, produto.getId() + ".imagem");
	}
	  
	  @Get("/produtos/{produto.id}/imagem")
	    public File download(Produto produto) {
	        return imagens.mostra(produto);
	    }
	  
	  
	@Post("/produtos/{produto.id}/imagem")
    public void upload(Produto produto,
            final UploadedFile imagem) {
        validator.checking(new Validations() {{
				if (that(imagem, is(notNullValue()), "imagem",
                    "imagem.nula")) {
                that(imagem.getContentType(),
                        startsWith("image"), "imagem", "nao.eh.imagem");
} }});
        validator
                .onErrorRedirectTo(ProdutosController.class)
                .edita(produto.getId());
        imagens.salva(imagem, produto);
        result.redirectTo(ProdutosController.class)
                .edita(produto.getId());
}

	
	
}

Bem no começo do codigo o eclipse me diz para eu configurar a build path bem na linha onde digo qual pacote se encontra a classe:

package br.com.caelum.goodbuy.controller;

[color=red]Erro:
[/color]

Eu fui ver o que necessitava para configurar o build path, mas não tenho idéia do que tenho que configurar.

Daí um outro erro que me aperece é no metodo mostra:

 public File mostra(Produto produto) {
	        return new File(pastaImagens, produto.getId() + ".imagem");
	}

[color=red]Erro:[/color]

e um outro erro é no método upload:

public void upload(Produto produto,
            final UploadedFile imagem) {
        validator.checking(new Validations() {{
				if (that(imagem, is(notNullValue()), "imagem",
                    "imagem.nula")) {
                that(imagem.getContentType(),
                        startsWith("image"), "imagem", "nao.eh.imagem");
} }});
        validator
                .onErrorRedirectTo(ProdutosController.class)
                .edita(produto.getId());
        imagens.salva(imagem, produto);
        result.redirectTo(ProdutosController.class)
                .edita(produto.getId());
}

[color=red]
Erro: [/color]

Minha outra classe Imagens esta assim:

package br.com.caelum.goodbuy.modelo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.servlet.ServletContext;
import br.com.caelum.vraptor.ioc.Component;
import org.apache.commons.io.IOUtils;

import sun.misc.IOUtils;
import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;




@Component
public class Imagens {

	private File pastaImagens;

	public Imagens(ServletContext context) {
		String caminhoImagens = context.getRealPath("/WEB-INF/imagens");

		pastaImagens = new File(caminhoImagens);
		pastaImagens.mkdir();
	}

	 public File mostra(Produto produto) {
	        return new File(pastaImagens, produto.getId() + ".imagem");
	}
	 
	public void salva(UploadedFile imagem, Produto produto) {
		File destino = new File(pastaImagens, produto.getId() + ".imagem");
		try {
			IOUtils.copy(imagem.getFile(), new FileOutputStream(destino));
		} catch (IOException e) {
			throw new RuntimeException("Erro ao copiar imagem", e);
		}
	}

}

Me apresenta um erro bem aonde importo o:

import org.apache.commons.io.IOUtils;

[color=darkred]Erro:[/color]

e também no método salva:

public void salva(UploadedFile imagem, Produto produto) {
		File destino = new File(pastaImagens, produto.getId() + ".imagem");
		try {
			IOUtils.copy(imagem.getFile(), new FileOutputStream(destino));
		} catch (IOException e) {
			throw new RuntimeException("Erro ao copiar imagem", e);
		}
	}

[color=red]Erro:[/color]

Alguém pode me ajudar nesta dúvida por favor??