私はJSFを学ぶための第一歩を踏み出しました。 「CoreJavaServerFacesThirdEdition」という興味深い本を見つけました。
最初の例をコンパイルしようとすると、ソースコードを次の場所からダウンロードできます: http://horstmann.com/corejsf/ 。コマンドラインで次のように入力すると
javac UserBean.Java
エラーが発生します:
package javax.inject does not exist
package javax.enterprise.context doe not exist
Java EE、Ant、GlassFishをダウンロードしました。
これが私のコマンドラインのスナップです:
C:\JSF-Tutorial\corejsf3-examples\javaee\ch01\login\src\Java\com\corejsf>javac UserBean.Java
UserBean.Java:4: error: package javax.inject does not exist
import javax.inject.Named;
^
UserBean.Java:6: error: package javax.enterprise.context does not exist
import javax.enterprise.context.SessionScoped;
^
UserBean.Java:9: error: cannot find symbol
@Named("user") // or @ManagedBean(name="user")
^
symbol: class Named
UserBean.Java:10: error: cannot find symbol
@SessionScoped
^
symbol: class SessionScoped
4 errors
C:\JSF-Tutorial\corejsf3-examples\javaee\ch01\login\src\Java\com\corejsf>
先週、Java EEアプリケーションをコンパイルする方法をグーグルで調べてきましたが、何も役に立ちませんでした。
誰かがこれを手伝ってくれませんか。JSFを学ぶために自分のタスクを進めることができるように、これを解決する必要があります。
SP:Java EEアプリケーションを素手でコンパイルしてからJava EEプロジェクトをNetBeansでコンパイルする方法を学びたい。GlassFishでの作業を学ぶことを好む最初に、そしておそらく後者で、Tomcatを検討します。
もう1つの質問。 Java EEとGlassFishサーバーを使用してアプリケーションをデプロイすることの違いは何ですか?
これらのクラスを含むJARファイルをコンパイル時のクラスパスに含める必要があります。
GlassFishサーバーの特定のケースでは、それは/glassfish/lib/javaee.jar
です。クラスパスは、javac
コマンドの-cp
(または-classpath
)引数として指定できます。これは、コンパイル時のクラスパスに含める必要があるJARファイルやクラスフォルダを指すディスクファイルシステムパスの半コロン区切りの文字列です。
javac -cp /path/to/glassfish/lib/javaee.jar UserBean.Java
javac
は、import
によって参照される不明なクラスに遭遇すると、そこで調べます。これにより、特に、それが正しい方法で使用されたかどうかを確認できます。
これは技術的にはJava EEとは関係ありません。これは単なる基本的なJavaです。Java EEに飛び込む前にまずそれを学ぶことをお勧めします。
IDEを使用している場合は、ターゲットサーバーを「ターゲットランタイム」としてプロジェクトに接続するだけです。 IDEは、ビルドパス(コンパイル時のクラスパス)に関してすべての魔法を自動的に実行します。
Netbeans 7.3では、プロジェクトビューアのライブラリフォルダを右クリックし、[ライブラリの追加]オプションを選択して、リストから[Java EE 6APIライブラリ]を選択できます。
NetBeans IDE 8.0では、バージョン7.3で説明したものとは少し異なります。
Libraries
を右クリックしてJava EEプロジェクトをImport...
を選択しますJava EE 6 API Library
またはJava EE 7 API Library
のいずれかを選択します。Import Library
ボタンをクリックしますAdd Library
ボタンを押します。