SlideShare a Scribd company logo
1 of 7
Download to read offline
JEE KURZUS 3. HÉT
SETENY.JANOS@TIGRA.HU
1
3. Teszt futtatása
WildFly indítás az Asztalon lévő ikonnal

pom.xml -ben arq-wildfly-remote keresése

<artifactId> tartalmának kijelölése 

és Ctrl + C

Ctrl + Shift + A, Edit Configurations …

+ majd Arquillian JUnit kiválasztása

Configure gomb a jobb oldalon

+ majd Manual container configuration

+ a jobb szélen majd Maven Dependency

Kb 30%-al szélesebbre húzni a dialog
ablakot
2
Ctrl + V, az elvárt eredmény: wildfly-
arquillian-container-remote

Bepipálni a Download to-t

… 8.2.1.Final-t választani a végéről és
OK

OK

Klikk a Manual container confuguration
-re a Configure gomb fölött

Configuration tab

Test kind: All in directory

Directory: klikk a … -ra

tigra-jee-kurzus/1608/src/test/java

OK
CDI

Context and Dependency injection
@Named - CDI Managed Bean, amit be bud injektálni a kért helyre

@Inject - Ide kérjük az injektálást, de az egész osztálynak Managed-nek kell lennie

Akkor managed, ha pl @Named, @Stateless, @Statefull, @Model

JSF page XHTML-jében is kérhetjük az injektálását: 

<h:dataTable var="_car" value=“#{cars}"

@Produces - Producer mező illetve metódus

A metódus akkor kellhet, pl ha futási időben dől el a konkrét létrehozandó objektum típus.

Objektum scope-ok (élettartam idők) - @RequestScoped, @SessionScoped,
@ApplicationScoped (MemberRepository pl)

Produce-subscribe vagy Producer - obesever minta:

@Inject

private Event<Car> carEventSrc;

…

public void onCarListChanged(@Observes(...) Car car)
3
Annotációk magyarázata
@Produces a getCars() illetve a getMembers() metódusokon

A visszatérési értékük bekerül a Car registration illetve a Member
registration form POST-tal küldése után kapott válszba

Ezért jelenik meg a lista a weblap alján

Ha @Produces vagy @Named hiányzik a newCar illetve a
newMember mezőről, akkor nem kerülnek beléjük a form-on beírt
értékek

Helyette a következő exception történek: Target Unreachable,
identifier 'newCar' resolved to null

@FacesConverter - JSF-ben ettől használható itt:

<f:converter converterId="memberConverter" />
4
JNDI példa
src/main/webapp/WEB-INF/1608-ds.xml
<datasources … >
<datasource jndi-name="java:jboss/datasources/1608DS"

pool-name="1608" enabled="true"

use-java-context="true">

<connection-url>
jdbc:h2:mem:1608;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1
</connection-url>

<driver>h2</driver>

<security>

<user-name>sa</user-name>

<password>sa</password>

</security>

</datasource>

</datasources>
Java Naming and Directory Interface
JPA - Java Persistence API
@PersistenceContext // @Inject helyett ez kell

private EntityManager em;

EntityManager - a közös data store-ban tárolt Entity-ket kezeli

Létrehozza, eltárolja és törli az Entity-ket

persist() - eltárolja

find() és createQuery() - megkeresi és visszatölti

remove() - törli

37.1.1 Requirements for Entity Classes - milyen class-ok
kezelését képes elvégezni az EntityManager?
6
7
Ctrl + Shift + A és Show Changes

More Related Content

More from Janos Seteny

More from Janos Seteny (10)

Jee kurzus 14. het
Jee kurzus 14. hetJee kurzus 14. het
Jee kurzus 14. het
 
Jee kurzus 13. het
Jee kurzus 13. hetJee kurzus 13. het
Jee kurzus 13. het
 
Jee kurzus 12. het
Jee kurzus 12. hetJee kurzus 12. het
Jee kurzus 12. het
 
Jee kurzus 11. het
Jee kurzus 11. hetJee kurzus 11. het
Jee kurzus 11. het
 
Jee kurzus 10. het
Jee kurzus 10. hetJee kurzus 10. het
Jee kurzus 10. het
 
Jee kurzus 9. het
Jee kurzus 9. hetJee kurzus 9. het
Jee kurzus 9. het
 
Jee kurzus 7. het
Jee kurzus 7. hetJee kurzus 7. het
Jee kurzus 7. het
 
Jee kurzus 6. het
Jee kurzus 6. hetJee kurzus 6. het
Jee kurzus 6. het
 
Jee kurzus 5. het
Jee kurzus 5. hetJee kurzus 5. het
Jee kurzus 5. het
 
Jee kurzus 4. het
Jee kurzus 4. hetJee kurzus 4. het
Jee kurzus 4. het
 

Jee kurzus 3. het

  • 1. JEE KURZUS 3. HÉT SETENY.JANOS@TIGRA.HU 1
  • 2. 3. Teszt futtatása WildFly indítás az Asztalon lévő ikonnal pom.xml -ben arq-wildfly-remote keresése <artifactId> tartalmának kijelölése 
 és Ctrl + C Ctrl + Shift + A, Edit Configurations … + majd Arquillian JUnit kiválasztása Configure gomb a jobb oldalon + majd Manual container configuration + a jobb szélen majd Maven Dependency Kb 30%-al szélesebbre húzni a dialog ablakot 2 Ctrl + V, az elvárt eredmény: wildfly- arquillian-container-remote Bepipálni a Download to-t … 8.2.1.Final-t választani a végéről és OK OK Klikk a Manual container confuguration -re a Configure gomb fölött Configuration tab Test kind: All in directory Directory: klikk a … -ra tigra-jee-kurzus/1608/src/test/java OK
  • 3. CDI
 Context and Dependency injection @Named - CDI Managed Bean, amit be bud injektálni a kért helyre @Inject - Ide kérjük az injektálást, de az egész osztálynak Managed-nek kell lennie Akkor managed, ha pl @Named, @Stateless, @Statefull, @Model JSF page XHTML-jében is kérhetjük az injektálását: 
 <h:dataTable var="_car" value=“#{cars}" @Produces - Producer mező illetve metódus
 A metódus akkor kellhet, pl ha futási időben dől el a konkrét létrehozandó objektum típus. Objektum scope-ok (élettartam idők) - @RequestScoped, @SessionScoped, @ApplicationScoped (MemberRepository pl) Produce-subscribe vagy Producer - obesever minta:
 @Inject
 private Event<Car> carEventSrc;
 …
 public void onCarListChanged(@Observes(...) Car car) 3
  • 4. Annotációk magyarázata @Produces a getCars() illetve a getMembers() metódusokon A visszatérési értékük bekerül a Car registration illetve a Member registration form POST-tal küldése után kapott válszba Ezért jelenik meg a lista a weblap alján Ha @Produces vagy @Named hiányzik a newCar illetve a newMember mezőről, akkor nem kerülnek beléjük a form-on beírt értékek Helyette a következő exception történek: Target Unreachable, identifier 'newCar' resolved to null @FacesConverter - JSF-ben ettől használható itt:
 <f:converter converterId="memberConverter" /> 4
  • 5. JNDI példa src/main/webapp/WEB-INF/1608-ds.xml <datasources … > <datasource jndi-name="java:jboss/datasources/1608DS"
 pool-name="1608" enabled="true"
 use-java-context="true">
 <connection-url> jdbc:h2:mem:1608;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1 </connection-url>
 <driver>h2</driver>
 <security>
 <user-name>sa</user-name>
 <password>sa</password>
 </security>
 </datasource>
 </datasources> Java Naming and Directory Interface
  • 6. JPA - Java Persistence API @PersistenceContext // @Inject helyett ez kell
 private EntityManager em; EntityManager - a közös data store-ban tárolt Entity-ket kezeli Létrehozza, eltárolja és törli az Entity-ket persist() - eltárolja find() és createQuery() - megkeresi és visszatölti remove() - törli 37.1.1 Requirements for Entity Classes - milyen class-ok kezelését képes elvégezni az EntityManager? 6
  • 7. 7 Ctrl + Shift + A és Show Changes