コンテンツにスキップ

「Jakarta EE」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
冒頭文から==概要==分離, +image, +{{Commonscat}}, リンク, など
en:Java Platform, Enterprise Edition(2014年1月28日 0:41:38(UTC))よりGeneral APIs, Code Sampleを翻訳して追加/上書き, など
34行目: 34行目:

Java EE APIは Java SE APIを元に機能拡張された様々な技術を包含している。

Java EE APIは Java SE APIを元に機能拡張された様々な技術を包含している。



* [http://docs.oracle.com/javaee/7/api Java EE 7 Platform Packages]

=== {{Javadoc:EE|package=javax.ejb|javax/ejb}}<code>.*</code> ===

* [http://docs.oracle.com/javaee/6/api Java EE 6 Platform Packages]

* [http://docs.oracle.com/javaee/5/api Java EE 5 Platform Packages]



=== {{Javadoc:EE|package=javax.servlet.*|javax/servlet}} ===

EJB1 と EJB2 は 永続化機能を提供するための分散オブジェクトコンテナ、遠隔手続き呼び出し ([[Java Remote Method Invocation|RMI]], RMI-IIOP) 同時実行制御、およびアクセス制御を定義した。

[[Java Servlet|Servlet]][[パッケージ (Java)|パッケージ]]では、主に[[Hypertext Transfer Protocol|HTTP]]リクエストのためのAPIが定義されている。また[[JavaServer Pages]] (JSP) に関するAPIも含まれる。



=== {{Javadoc:EE|package=javax.websocket.*|javax/websocket}} ===

このパッケージは エンタープライズビーンとそのクライアント、エンタープライズビーンと EJBコンテナのそれぞれの間の決まりを定義した[[クラス (コンピュータ)|クラス]]と[[インタフェース (情報技術)|インターフェース]]を含む。

WebSocketパッケージでは、[[WebSocket]]の通信に関するAPIが定義されている。



=== {{Javadoc:EE|package=javax.transaction|javax/transaction}}<code>.*</code> ===

=== {{Javadoc:EE|package=javax.faces.*|javax/faces}} ===

Facesパッケージでは、 [[Java Server Faces]] (JSF) に関するAPIが定義されている。JSFはコンポーネントによるUI構築技術である。



=== {{Javadoc:EE|package=javax.el.*|javax/el}} ===

これらのパッケージは、JTA について定義する。

ELパッケージでは、Java EEの[[JavaServer Pages#EL式|EL式]]に関する[[クラス (コンピュータ)|クラス]]と[[インタフェース (情報技術)|インターフェース]]が定義されている。EL式はJSPやJSFを作成するWebアプリケーション開発者のためにデザインされた簡単な構文である。主にJSFにおいてコンポーネントに管理beanを結びつけるために用いられるが、仕様自体は独立しており、それ以外の部分でも使用可能である。



=== {{Javadoc:EE|package=javax.xml.stream|javax/xml/stream}} ===

=== {{Javadoc:EE|package=javax.enterprise.inject.*|javax/enterprise/inject}} ===

Injectパッケージでは、[http://jcp.org/en/jsr/detail?id=299 Contexts and Dependency Injection] (CDI) APIのためのインジェクション[[アノテーション]]が定義されている。CDIは[[依存性の注入]] (DI) に関する仕様である。



=== {{Javadoc:EE|package=javax.enterprise.context.*|javax/enterprise/context}} ===

このパッケージは、 XMLの読み込みと書き込み機能を含む。

Contextパッケージでは、Contexts and Dependency Injection (CDI) APIのためのコンテキストアノテーションとインタフェースが定義されている。



=== {{Javadoc:EE|package=javax.jms|javax/jms}}<code>.*</code> ===

=== {{Javadoc:EE|package=javax.ejb.*|javax/ejb}} ===

[[Enterprise JavaBeans]] (EJB) パッケージでは、EJBコンテナがサポートする[[トランザクション処理]] ([[JTA]])、[[RPC]]([[Java Remote Method Invocation|RMI]]または[[RMI-IIOP]])、[[並行性制御]]、[[依存性の注入]] (DI)、ビジネスオブジェクトのための[[アクセス制御]]といった軽量APIが定義されている。またこのパッケージは、エンタープライズBeanとそのクライアント間、エンタープライズBeanとEJBコンテナ間の取り決めを定義したクラスとインタフェースも含む。



=== {{Javadoc:EE|package=javax.validation.*|javax/validation}} ===


 [[Java Message Service|JMS]] APIJMS APIJava

Validation{{|Bean Validation|en|Bean Validation}} APIBean ValidationbeanJPAJava EE[[Java Persistence API|JPA]][[JavaServer Faces|JSF]]


=== {{Javadoc:EE|package=javax.faces.component.html|javax/faces/component/html}} ===

=== {{Javadoc:EE|package=javax.persistence.*|javax/persistence}} ===

Persistenceパッケージには、永続化プロバイダと管理クラス、それに[[Java Persistence API]] (JPA) クライアントの間の取り決めを定義したクラスとインタフェースが含まれている。



=== {{Javadoc:EE|package=javax.transaction.*|javax/transaction}} ===

このパッケージは、 [[Java Server Faces|JSF]] APIについて定義している。JSF はコンポーネントによるUI構築技術である。

Transactionパッケージでは、Java EEの[[トランザクション処理]]を担う[[Java Transaction API]] (JTA) のインタフェースとアノテーションを含むAPIが定義されている。これらのAPIは低レベルAPIが抽象化されたものであり、通常のアプリケーション開発者がJava EEを用いて開発する場合は、EJBのより高レベルのトランザクション管理を用いたり、このAPIのアノテーションとCDIの管理Beanとを組み合わせて使用することが想定されている。



=== {{Javadoc:EE|package=javax.persistence|javax/persistence}} ===

=== {{Javadoc:EE|package=javax.security.auth.message.*|javax/security/auth/message}} ===

Messageパッケージでは、Java Authentication SPI (JASPIC) のインタフェースやクラスを含むAPIが定義されている。JASPICはセキュアなJava EEアプリケーションを構築するための仕様である。



=== {{Javadoc:EE|package=javax.enterprise.concurrent.*|javax/enterprise/concurrent}} ===

このパッケージは、永続化プロバイダと管理クラスと[[Java Persistence API|JPA]]クライアントの間の決まりを定義したクラスとインターフェースを含む。

Concurrentパッケージでは、Java EEプラットフォーム標準の管理されたスレッドプールと連携する、並行処理に関するインタフェースが定義されている。



=== {{Javadoc:EE|package=javax.jms.*|javax/jms}} ===

== 外部リンク ==


JMS[[Java Message Service]] (JMS) APIJMSJava

=== {{Javadoc:EE|package=javax.batch.api.*|javax/batch/api}} ===

BatchのAPIパッケージでは、Java EEの[[バッチ処理]]のためのAPIが定義されている。バッチ処理APIは、大容量のデータを扱う長時間に亘るバックグラウンドタスクや、定期的に実行されるタスクのための手法を提供する。


=== {{Javadoc:EE|package=javax.resource.*|javax/resource}} ===


Resource{{|Java EE Connector Architecture|en|Java EE Connector Architecture}} (JCA) APIJCA[[Enterprise application integration]] (EAI)  (EIS) APIAPI

== 例 ==

以下に、Java EE 7の様々な技術を組み合わせて作成した、ユーザーの登録を行うWeb入力画面のサンプルを示す。


Java EEには、[[Java Servlet|サーブレット]]に[[JavaServer Pages|JSP]]、また[[JavaServer Faces|JSF]]と{{仮リンク|Facelets|en|Facelets}}といった、Web UIを作ることが可能ないくつかの技術が存在する。以下はJSFとFaceletsを用いた例である。コード上では明示されていないが、入力コンポーネントでは入力値の検証に{{仮リンク|Bean Validation|en|Bean Validation}}を使用している。


<source lang="xml">

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core">


<f:metadata>

<f:viewParam name="user_id" value="#{userEdit.user}" converter="#{userConvertor}" />

</f:metadata>

<h:body>

<h:messages />

<h:form>

<h:panelGrid columns="2">

<h:outputLabel for="firstName" value="First name" />

<h:inputText id="firstName" value="#{userEdit.user.firstName}" label="First name" />

<h:outputLabel for="lastName" value="Last name" />

<h:inputText id="lastName" value="#{userEdit.user.lastName}" label="Last name" />

<h:commandButton action="#{userEdit.saveUser}" value="Save" />

</h:panelGrid>

</h:form>

</h:body>

</html>

</source>


=== バッキングBeanの例 ===

Java EEでは、ビューの処理の実装にバッキングBean(画面の背後で処理するBean、管理Beanとも)と呼ばれる仕組みを用いる。以下はCDIと[[Enterprise JavaBeans|EJB]]を用いたバッキングBeanの例である。


<source lang="java">

@Named

@ViewScoped

public class UserEdit {

private User user;


@Inject

private UserDAO userDAO;

public String saveUser() {

userDAO.save(this.user);

addFlashMessage("User " + this.user.getId() + " saved");

return "users.xhtml?faces-redirect=true";

}


public void setUser(User user) {

this.user = user;

}


public User getUser() {

return user;

}

}

</source>


=== DAOの例 ===


Java EE[[]][[Enterprise JavaBeans|EJB]][[JDBC]][[Java Persistence API|JPA]]使EJBJPA[[Data Access Object]] (DAO) EJB[[Java Transaction API|JTA]]使

<source lang="java">

@Stateless

public class UserDAO {

@PersistenceContext

private EntityManager entityManager;

public void save(User user) {

entityManager.persist(user);

}

public void update(User user) {

entityManager.merge(user);

}


public List<User> getAll() {

return entityManager.createNamedQuery("User.getAll", User.class)

.getResultList();

}


}

</source>


=== エンティティの例 ===


Java EE[[]]/[[Java Persistence API|JPA]]{{|Bean Validation|en|Bean Validation}}使

<source lang="java">

@Entity

public class User {


@Id

@GeneratedValue(strategy = IDENTITY)

private Integer id;

@Size(min = 2, message="First name too short")

private String firstName;

@Size(min = 2, message="Last name too short")

private String lastName;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getFirstName() {

return firstName;

}


public void setFirstName(String firstName) {

this.firstName = firstName;

}

public String getLastName() {

return lastName;

}

public void setLastName(String lastName) {

this.lastName = lastName;

}


}

</source>


== 関連項目 ==

{{Wikibooks|Java|Java}}

{{Wikibooks|Java|Java}}

{{Commonscat|Java EE}}

{{Commonscat|Java EE}}

* [[EAR]]


== 外部リンク ==

* [http://www.oracle.com/technetwork/jp/java/javaee/overview/ Oracle - Java EE]

* [http://www.oracle.com/technetwork/jp/java/javaee/overview/ Oracle - Java EE]



68行目: 227行目:

{{Computer-stub}}

{{Computer-stub}}



[[Category:Java|*Java]]

[[Category:Java]]

[[Category:ウェブアプリケーション|Java Platform, Enterprise Edition]]

[[Category:ウェブアプリケーション]]

[[Category:Javaプラットフォーム|Platform, Enterprise Edition]]

[[Category:Javaプラットフォーム|Platform, Enterprise Edition]]

[[Category:Java enterprise platform|Java Platform, Enterprise Edition]]

[[Category:Java enterprise platform]]

[[Category:Java specification requests|Java Platform, Enterprise Edition]]

[[Category:Java specification requests]]


2014年2月24日 (月) 03:08時点における版

Javaのエディション
Javaカード
Java ME (Micro)
Java SE (Standard)
Jakarta EE
JavaFX
テンプレートを表示

Java Platform, Enterprise Edition (Java EE) JavaJava Platform, Standard Edition (Java SE) 

JavaJava EEJava EEJava SE

1998Java ServletJavaServer Pages (JSP)Enterprise JavaBeans (EJB)Java Naming and Directory Interface (JNDI)Java Transaction API (JTA)Java Message Service (JMS)JavaMailJ2EE Connector Architecture (J2CA)XMLAPIJAXPEJB

2013Java Platform, Enterprise Edition 7 (Java EE 7) Java EE 5Java 2 Platform, Enterprise Edition (J2EE) 

Java EE


Java 2 Platform, Enterprise Edition 1.2 J2EE19991212

Java 2 Platform, Enterprise Edition 1.3 JSR 58 2001924Java Community Process20014Sun

Java 2 Platform, Enterprise Edition 1.4 JSR 151 20031124200212Sun

Java Platform, Enterprise Edition 5 JSR 2442006511

Java Platform, Enterprise Edition 6 JSR 31620091210

Java Platform, Enterprise Edition 7 JSR 3422013528

Java EE


Java EE SDK Java EEGlassFish Open Source EditionGlassFish 4.0Java EE 7

Java Java EE  Java EE 使

API


Java EE API Java SE API

Java EE 7 Platform Packages

Java EE 6 Platform Packages

Java EE 5 Platform Packages

javax.servlet.*


ServletHTTPAPIJavaServer Pages (JSP) API

javax.websocket.*


WebSocketWebSocketAPI

javax.faces.*


Faces Java Server Faces (JSF) APIJSFUI

javax.el.*


ELJava EEELELJSPJSFWebJSFbean使

javax.enterprise.inject.*


InjectContexts and Dependency Injection (CDI) APICDI (DI) 

javax.enterprise.context.*


ContextContexts and Dependency Injection (CDI) API

javax.ejb.*


Enterprise JavaBeans (EJB) EJB (JTA)RPCRMIRMI-IIOP (DI)APIBeanBeanEJB

javax.validation.*


ValidationBean Validation APIBean ValidationbeanJPAJava EEJPAJSF

javax.persistence.*


PersistenceJava Persistence API (JPA) 

javax.transaction.*


TransactionJava EEJava Transaction API (JTA) APIAPIAPIJava EEEJBAPICDIBean使

javax.security.auth.message.*


MessageJava Authentication SPI (JASPIC) APIJASPICJava EE

javax.enterprise.concurrent.*


ConcurrentJava EE

javax.jms.*


JMSJava Message Service (JMS) APIJMSJava

javax.batch.api.*


BatchAPIJava EEAPIAPI

javax.resource.*


ResourceJava EE Connector Architecture (JCA) APIJCAEnterprise application integration (EAI)  (EIS) APIAPI


Java EE 7Web

Java EEJSPJSFFaceletsWeb UIJSFFaceletsBean Validation使
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core">

    <f:metadata>
        <f:viewParam name="user_id" value="#{userEdit.user}" converter="#{userConvertor}" />
    </f:metadata>
        
    <h:body>
                
        <h:messages />
                
        <h:form>        
            <h:panelGrid columns="2">                                  
                <h:outputLabel for="firstName" value="First name" />
                <h:inputText id="firstName" value="#{userEdit.user.firstName}" label="First name" />
                                
                <h:outputLabel for="lastName" value="Last name" />
                <h:inputText id="lastName" value="#{userEdit.user.lastName}" label="Last name"  />
                           
                <h:commandButton action="#{userEdit.saveUser}" value="Save" />
            </h:panelGrid>
        </h:form>
        
    </h:body>
</html>

バッキングBeanの例

Java EEでは、ビューの処理の実装にバッキングBean(画面の背後で処理するBean、管理Beanとも)と呼ばれる仕組みを用いる。以下はCDIとEJBを用いたバッキングBeanの例である。

@Named
@ViewScoped
public class UserEdit {
        
    private User user;

    @Inject
    private UserDAO userDAO;
  
    public String saveUser() {
        userDAO.save(this.user);        
        addFlashMessage("User " + this.user.getId() + " saved");
                
        return "users.xhtml?faces-redirect=true";
    }

    public void setUser(User user) {
        this.user = user;
    }

    public User getUser() {
        return user;
    }
}

DAOの例


Java EEEJBJDBCJPA使EJBJPAData Access Object (DAO) EJBJTA使
@Stateless
public class UserDAO {
        
    @PersistenceContext
    private EntityManager entityManager;
        
    public void save(User user) {
        entityManager.persist(user);
    }
        
    public void update(User user) {
        entityManager.merge(user);
    }

    public List<User> getAll() {
        return entityManager.createNamedQuery("User.getAll", User.class)
                            .getResultList();
    }

}

エンティティの例

Java EEでは、エンティティ/モデルクラスのためにJPAが用意されており、またバリデーション(値の検証)ではBean Validationが使用できる。以下は両者を用いた例である。

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = IDENTITY)
    private Integer id;
        
    @Size(min = 2, message="First name too short")
    private String firstName;
        
    @Size(min = 2, message="Last name too short")
    private String lastName;
  
    public Integer getId() {
        return id;
    }
        
    public void setId(Integer id) {
        this.id = id;
    }
  
    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
        
    public String getLastName() {
        return lastName;
    }
 
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}

関連項目

外部リンク