mahout バージョン 0.9 を使用しています。次のスタックトレースを使用して、デモサーバーで NPE を取得しました。
HTTP ステータス 500 - リクエストの処理に失敗しました。ネストされた例外は java.lang.NullPointerException です
タイプ例外レポート
message要求の処理に失敗しました。ネストされた例外は java.lang.NullPointerException です
説明サーバーで内部エラーが発生したため、この要求を実行できませんでした。
例外
org.springframework.web.util.NestedServletException: リクエストの処理に失敗しました。ネストされた例外は java.lang.NullPointerException です org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:728)根本的な原因
java.lang.NullPointerException org.apache.mahout.cf.taste.impl.recommender.TopItems.getTopUsers(TopItems.java:119) org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood.getUserNeighborhood(NearestNUserNeighborhood.java:94) org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender.recommend(GenericUserBasedRecommender.java:87) org.apache.mahout.cf.taste.impl.recommender.AbstractRecommender.recommend(AbstractRecommender.java:63) .....recommendationengine.service.RecommendationService.findRecommendedProductsForOpportunityByMahout(RecommendationService.java:69) .....recommendationengine.controller.RecommendationController.recommendedForOpportunity(RecommendationController.java:54) sun.reflect.GeneratedMethodAccessor49.invoke(不明なソース) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:491) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:728)note根本原因の完全なスタック トレースは、Apache Tomcat/7.0.40 ログで入手できます。
アパッチ トムキャット/7.0.40
デバッグのためにサーバーを再起動した後、問題は再現されません。Mahout 0.9 のソース コードをダウンロードしましたが、 TopItems.java:119でNPEを取得する方法を理解できません。この NPE を手伝ってくれる人はいますか?
君たちありがとう。
howManyパラメータが 0 の 場合は NPE を更新できますが、私は 5 を使用しています。調査します....
更新 2 howManyパラメータは、NearestNUserNeighborhood のコンストラクタでチェックインされているため、1 未満にすることはできません。これ以上のアイデアはありません... :(