You are using a Non-preference Item recommendation. Similar to this question
and I do find it weird that it is returning that type of an exception. what I've done is something like this.
MySQLBooleanPrefJDBCDataModel jdbc = new MySQLBooleanPrefJDBCDataModel(dataSource, TABLE_NAME, USER_ID, ITEM_ID);
CachingRecommender cachingRecommender = new CachingRecommender( new SlopeOneRecommender(jdbc));
// Get 5 recommendations for user 3
List<RecommendedItem> items = cachingRecommender.recommend(3, 5);
for (RecommendedItem item : items) {
System.out.println(item);
}
Hope this helps.