Problema com servlet e dao " No value specified for parameter 1 "

Galera, estou com um problema que é o seguinte, eu to fazendo um exercicio de estoque de merda, e quando eu vou usar qualquer metodo de busca sempre da esse erro " No value specified for parameter 1 "

Aqui o codigo de um dos metodos.

Classe Produto Categoria Dao

public ProdutoCategorias findCategoryById(Integer categoryId) throws Exception{

  	ConnectionFactory connF = new ConnectionFactory();
  	Connection conn = connF.getConnection();
  	String sql = "SELECT id, nome FROM produto_categorias  WHERE id = ?";
  	
  	try {
  		
  		PreparedStatement ps = conn.prepareStatement(sql);
  		ps.setInt(1, categoryId);
                         ProdutoCategorias produtoCategorias = new ProdutoCategorias();
  		
  		ResultSet rs = ps.executeQuery();
  		
  		if(rs.next()){
  			
  			produtoCategorias.setNome(rs.getString("nome"));
  			produtoCategorias.setId(rs.getInt("id"));
  			
  		}else{
  			
  			throw new Exception("Categoria não encontrada");
  		}
  		
  		return produtoCategorias;
  	} catch (Exception e) {
  		throw e;
  	}

SERVLET Buscar Categoria por ID

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String message = “”;

  	try {
  		ProdutoCategoriasDao productCategoryDao = new ProdutoCategoriasDao();
  		ProdutoCategorias productCategory = productCategoryDao.findCategoryById(Integer.valueOf(request.getParameter("categoryId")));
                  HttpSession session = request.getSession();
  	 session.setAttribute("produtoCategorias",productCategory);
  	 response.sendRedirect("ResultadoCategoria.jsp");
  	} catch (Exception e) {
  		// TODO Auto-generated catch block
  		message = "Erro ao encontrar categoria : "+e.getMessage();
  	} 

}