I think it's not about PlusAnonymousUserDataModel,when I run it as
application,works well,when run the servlet on tomcat,the error happens.


On Fri, Sep 24, 2010 at 11:49 PM, Sam Yang <[email protected]> wrote:

> I got  "java.sql.SQLException: No database selected", but my database
> config is right,who know what's wrong?
>
> This is part of my source code:
> =====
>
> public class AnonymousRecommender implements Recommender{
>
> private final Recommender recommender;
>
> private final PlusAnonymousUserDataModel plusAnonymousModel;
>
>  public AnonymousRecommender() throws TasteException, IOException {
>
>  this(new PreferenceDataModel());
>
> }
>
>
>  public AnonymousRecommender(PreferenceDataModel dataModel)
>
>  throws TasteException {
>
>  ItemSimilarity itemSimilarity = new ItemSimilarityImpl();
>
>  recommender = new 
> GenericItemBasedRecommender(newPlusAnonymousUserDataModel(dataModel), 
> itemSimilarity);
>
>  plusAnonymousModel = (PlusAnonymousUserDataModel)recommender
> .getDataModel();
>
> }
>
>  public synchronized List<RecommendedItem> recommend(PreferenceArray
> anonymousUserPrefs, int howMany) throws TasteException {
>
>  plusAnonymousModel.setTempPrefs(anonymousUserPrefs);
>
>  List<RecommendedItem> recommendations =
>
>  recommend(PlusAnonymousUserDataModel.TEMP_USER_ID, howMany, null);
>
>  return recommendations;
>
> }
>
>  public List<RecommendedItem> recommend(String viewIDs, int howMany)
> throws TasteException {
>
>  viewIDs = viewIDs.replace("[", "").replace("]", "");
>
>  String[] viewIDsArray = viewIDs.split(",");
>
>  System.out.println(viewIDsArray.getClass());
>
>  PreferenceArray anonymousPrefs = newGenericUserPreferenceArray(viewIDsArray.
> length);
>
>  for (int i=0;i<viewIDsArray.length;i++){
>
>  anonymousPrefs.setUserID(i,PlusAnonymousUserDataModel.TEMP_USER_ID);
>
>  anonymousPrefs.setItemID(i, Integer.parseInt(viewIDsArray[i]));
>
>  anonymousPrefs.setValue(i, 3.0f);
>
>  }
>
>  return recommend(anonymousPrefs, howMany);
>
> }
> =====
>
> I got this exception:
>
> =====
>
> javax.servlet.ServletException: 
> org.apache.mahout.cf.taste.common.TasteException: java.sql.SQLException: No 
> database selected
>       
> net.gamestreamer.recommendation.servlet.AnonymousRecommenderServlet.doGet(AnonymousRecommenderServlet.java:108)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>
>  *root cause*
>
> org.apache.mahout.cf.taste.common.TasteException: java.sql.SQLException: No 
> database selected
>       
> org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.doGetPreferencesForItem(AbstractJDBCDataModel.java:466)
>       
> org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.getPreferencesForItem(AbstractJDBCDataModel.java:440)
>       
> org.apache.mahout.cf.taste.impl.model.PlusAnonymousUserDataModel.getPreferencesForItem(PlusAnonymousUserDataModel.java:124)
>       
> org.apache.mahout.cf.taste.impl.recommender.AbstractRecommender.getAllOtherItems(AbstractRecommender.java:107)
>       
> org.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender.recommend(GenericItemBasedRecommender.java:98)
>       
> net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:67)
>       
> net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:39)
>       
> net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:53)
>       
> net.gamestreamer.recommendation.servlet.AnonymousRecommenderServlet.doGet(AnonymousRecommenderServlet.java:97)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>
>  *root cause*
>
> java.sql.SQLException: No database selected
>       com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
>       com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562)
>       com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494)
>       com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960)
>       com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114)
>       com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2696)
>       
> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2105)
>       
> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2264)
>       
> org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.doGetPreferencesForItem(AbstractJDBCDataModel.java:458)
>       
> org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.getPreferencesForItem(AbstractJDBCDataModel.java:440)
>       
> org.apache.mahout.cf.taste.impl.model.PlusAnonymousUserDataModel.getPreferencesForItem(PlusAnonymousUserDataModel.java:124)
>       
> org.apache.mahout.cf.taste.impl.recommender.AbstractRecommender.getAllOtherItems(AbstractRecommender.java:107)
>       
> org.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender.recommend(GenericItemBasedRecommender.java:98)
>       
> net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:67)
>       
> net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:39)
>       
> net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:53)
>       
> net.gamestreamer.recommendation.servlet.AnonymousRecommenderServlet.doGet(AnonymousRecommenderServlet.java:97)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>
> =====
>
>
> --
> I'm samsam.
>



-- 
I'm samsam.

Reply via email to