// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Java EEアプリケーションの開始のビデオ
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Java EEアプリケーションの開始のビデオ - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Java EEアプリケーションの開始のビデオ

|===
|このスクリーンキャストでは、Java Enterprise Edition 6 (Java EE 6)仕様として導入された一部のテクノロジに対して、NetBeans IDEが提供するサポートを示します。このスクリーンキャストでは、IDEのウィザードを使用してエンティティ・クラス用のEJB 3.1ステートレス・セッションBeanファサードを含む単純なJava EE 6 Webアプリケーションを作成する方法を示します。次に、セッション・ファサードといくつかのJSF 2.0ページにアクセスするJSF管理対象Beanを作成する方法を確認します。

作成者: Ken Ganfield
時間: 6:16

link:http://bits.netbeans.org/media/nb68-gettingstarted-javaee6.mov[+ダウンロード/フルサイズを視聴+] (25MB)


link:/about/contact_form.html?to=3&subject=Feedback: Getting Started with Java EE Applications Demo[+このチュートリアルに関するご意見をお寄せください+]
 
|===


== 関連リンク

* link:javaee-gettingstarted.html[+NetBeans IDEでのJava EEアプリケーションの開始+]
* link:javaee-intro.html[+Java EEテクノロジ入門+]
* link:../web/jsf20-support.html[+NetBeans IDE 6.8でのJSF 2.0サポート+]
* link:../../trails/java-ee.html[+Java EEおよびJava Webの学習+]
