私はNetbeans e-commerce チュートリアルに従って、Netbeans に慣れようとしています。私は Netbeans 7.0 を使用しています。チュートリアルは Netbeans 6.8-6.9 に推奨されます。通常、適応は非常に簡単です (表示される要素の順序が異なるか、より多くのフィールドがあります)。
チュートリアルの第 3 章では、「[コンテキストと依存性注入を有効にする] オプションが選択されていないことを確認してください。」
第7 章では、第 7 章の内容に従って、特に次のコードを に追加しますControllerServlet
。
@EJB
private CategoryFacade categoryFacade;
public void init() throws ServletException {
// store category list in servlet context
getServletContext().setAttribute("categories", categoryFacade.findAll()); // line 37
}
実行するように言われたときに実行しようとすると、NullPointerException
37 行目に が表示されます。37 行目は、上記の init メソッドの実際のコードです。例外はサーバー側で発生するので、ある時点でチュートリアルを書いた人が気が変わって CDI を有効にしたのではないかと思います。beans.xml
問題を修正するためにダミーを追加しようとしましたが、成功しませんでした。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
この後、提供されたコードをダウンロードし、「ブレークポイント」(ファイル AffableBean_snapshot3.zip) から作業をやり直しましたNullPointerException
。また、チュートリアル (AffableBean_snapshot4.zip) のこの部分の後にあるはずのプロジェクトのバージョンを取得しましたが、まったく同じ時点で失敗します。
それで、私は何を間違っていますか?本当に Netbeans 7.0 ではなく 6.9 を使うべきですか? sun-*
唯一の顕著な違いは、 Netbeans 6.9 とNetbeans 7.0にあるいくつかの xml ファイルのファイル名ですglassfish-*
。