0

データ管理のために Java と ebean で play 2 フレームワークを使用しています。ドロップダウン リストに問題があります。ドロップダウン リストには、mySQL データベースからのデータが入力されます。動作していましたが、誤って何かを変更したようで、ページをレンダリングしようとすると null ポインター例外が発生します。問題を解決しようとしていますが、問題を把握できないようです。以下にコード スニペットを示します。

これは、ドロップダウン リストに入力するコードです。

public static Result gestureNames()
  {
  List <GestureClassEntity> gcet = GestureClassEntity.find.orderBy("name asc").findList();
  return ok(views.html.train.render(gcet)); 
}

これは、メソッドのルート構成です。

GET    /name                        controllers.Application.gestureNames()

これは更新ルート ファイルです。

# Home page
GET     /                           controllers.Application.index()
GET     /socket                     controllers.Application.webSocket()
GET     /cobject                    controllers.Application.classifyObject()
GET    /classify                    controllers.Application.classify()
GET    /name                        controllers.Application.gestureNames()
GET    /train                       controllers.Application.train()
GET    /tclassifier                 controllers.Application.trainClassifier()

これらはtrainとgesturenamesメソッドです

public static Result train()
  {   
      return ok(train.render(null));
  }

  public static Result gestureNames()
  {
  List <GestureClassEntity> gcet = GestureClassEntity.find.orderBy("name asc").findList();
  return ok(views.html.train.render(gcet)); 
}

これは、scala.html ファイルのパラメーター定義です。

@( gestureList: List[GestureClassEntity])

これはドロップダウン リストのコードです。

<select class = "selectone">
  @for(gesture <- gestureList){
      <option value = @gesture.id>
        @gesture.getName()
      </option>
  } 
  </select>

scala.html ファイルを実行すると、null ポイント例外が発生します。

これはスタックトレースです:

[error] application -

! @6bjof8n9g - Internal server error, for request [GET /train] ->

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[NullPo
interException: null]]
        at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [
play_2.9.1.jar:2.0.2]
        at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [
play_2.9.1.jar:2.0.2]
        at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor.jar:2.0.2]
        at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1.jar:2.0.
2]
        at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor.jar:2.0.
2]
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor.j
ar:2.0.2]
Caused by: java.lang.NullPointerException: null
        at scala.collection.JavaConversions$JListWrapper.iterator(JavaConversion
s.scala:618) ~[scala-library.jar:0.11.3]
        at scala.collection.IterableLike$class.foreach(IterableLike.scala:73) ~[
scala-library.jar:0.11.3]
        at scala.collection.JavaConversions$JListWrapper.foreach(JavaConversions
.scala:615) ~[scala-library.jar:0.11.3]
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:194)
 ~[scala-library.jar:0.11.3]
        at scala.collection.JavaConversions$JListWrapper.map(JavaConversions.sca
la:615) ~[scala-library.jar:0.11.3]
        at views.html.train$.apply(train.template.scala:50) ~[classes/:na]

プロジェクトを課題として提出する必要があり、遅れているので、誰でもこの問題を解決できますか。

皆さん、ありがとうございました。

4

1 に答える 1

2

この問題は、/trainUrlの呼び出しに起因します。これは、リストが nulltrain()であるテンプレートを呼び出すメソッドにマップされているためです。GestureClassEntity

GET    /train                       controllers.Application.train()

次に、次のように呼び出します。

public static Result train()
  {   
      return ok(train.render(null)); // <- here is the problem
  }
于 2012-09-13T13:38:07.083 に答える