glassfish3 & java ee6 at genevajug by alexis moussine-pouchkine

61

Upload: genevajug

Post on 20-Jun-2015

695 views

Category:

Technology


5 download

DESCRIPTION

Java EE 6 est loin d'être un simple rafraichissement d’une technologie que certains trouvent vieillissante. Avec des évolutions majeures pour EJB, JPA, servlet, et JSF, avec l’arrivée d’une injection unifiée avec CDI, le rajout de JAX-RS ou encore l’arrivée de BeanValidation il devient quasi inutile de rajouter des bibliothèques externes. Avec un support complet de Java EE 6, des fonctions orientées développeur, de multiples outils d’administration, un mode embarqué, une modularité basée sur OSGi.... La liste des fonctionnalités de GlassFish 3 sonne comme les promesses d’autres serveurs d’applications. A vous de voir comment tout ceci est utilisable pour vous, dès aujourd’hui. Cette présentation intègrera donc une bonne partie des nouveautés de la plate-forme Java EE 6, des démonstrations et une feuille de route sur l’avenir du projet GlassFish (3.1 et au delà).

TRANSCRIPT

Page 1: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

�������������� ������� �������������������

�������������������������

��������������

Page 2: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

�����������������������

��������������������������������

��� �� ������� ����!���"#���$##%

Page 3: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� ������������������

����������������� �����������������

Page 4: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� ������������������

Page 5: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� ������������������

Page 6: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

����������������������

������������

&�������

�'�(

'�����

&������

)'(�&

)����

)�����

��)*

��)�+�&

�'�

����

$##,

��-

$##�

��������������� ��

� ���������������� �!"

� ���������#������ �$"

'���.

$##/

��.

$##%

$."

���

$##0

$."."

����������"

.#."

����

$#"#

Page 7: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� �������

� ��&�������-� 1����2���������2��������2� ��������

� '����������$##,����3��.����

� '�!����3����

� �����-�4��)�+'52�������4��)�6'52����77�-�4���52�

�����������4&����52�8����9�4��'52�������������:

� ������������'����� �����������9�����-�����8����'�����

� �������,�;���+� �������<�������������

� �����&����������'������� ����8�����

Page 8: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

%��� �� ������������

Page 9: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� ��������&���&���'���

� =������:���������������� ����������������3���

� ����������8����'���������������������������:��������

� +�����������������������������������-

� '����:�������!-�8����������������

� &��������������������-����������������������

� ����������.#."��������������$#"#�����������

� ��������������� ����2�3������2�+>�(2��?�!����@�A�

� "##B�!�:� ����2�...

� ����������������

� ����������."����$#"#2�.$����$#""2�?����$#"$

� &��������:2���������7��������2�&��������2��������7�����

� ��������������C;;:���� ���.��:;�������

Page 10: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

(��

��������������������D����

����������

Page 11: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� <�������������������� ���������������� ����

� ����������-�� ��������������������������� ����

)��� �������� ��� �*����+

Page 12: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

�������,������

� ����-����������������������������� ���

������������������������-�����

$ asadmin redeploy --propertieskeepSessions=true myapp.war

� ������-������� �������

�����������������:�

� <���:���������< ��

Page 13: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

-���������&�� ���������#

Page 14: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

.��� �������(������

� ��������C��������������48'��5

� �������!���C�>E$

� F�����-������G

Page 15: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

Page 16: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

��������

)��/����)

������

��������

�� ��0�

����������

�����������

'�����

�'�

��*

��'

+�<;<<8�

�� �����

��������

�� ��0#

+�!���

'����!��

&��

�&�

��������

�������

�� ��01

��6�!�'������

6'

����:�����

����-����

��������

�������

����� �!

������

����������

�����������

��*�

����".#

6'�H

�'�

�������

������

����� �$

������

����������

4D�!5

��*�."

����$.#

'������.#

�'��$.#

��)�+'�"."

& <�".#

I<�3���

*����@������J

23�)���

.���&�4��

����� 5���3����������

Page 17: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

����� �$�6�2���7��8'9

� '��������D���<�

� 6�!���� ���

� �������!����-�K����::�!����-

� ��������-�<�3������

� <����������������-���<�

Page 18: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� ��*�."

� ����$.#

� '������.#

� �'��$.#

� ��)�+'�"."

� &����������".�

� *����@����������".#

� <�".#

� & <�".#

� ����:���*�����".#

� <������������"."

� ��)�6'�$.$

� �'+�"#%�".

� �'��$.$�;��(�$.$

� �'+�$,#�"."

8'�������*������*����������

Page 19: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

��:;,�

� +�'� ���D�!�����������<

� ������-�D����-��������

� +����-���:������2���:�������>������<

� �����������!��������:������:������

� ���:�����������<�D����������

� ��)�+'�"."�����:�������D������*�

Page 20: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

��:;,�����* ����

����������� ������������ ���������������� �������������������� �� ���� ���������������� �� ���� ���������������������������������������

���������������

��������������� ��� ���� ���������������������

Page 21: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

4���<� ���������0=

��������������� ��

������������� !����������������� �� � ���� ���!����������!����� � �

������"�� ���������� �#$

������

���%&��&�����"��������"�� �'�����(�������($

�����������'�����(��

���%&��&����%��) �����*��

������"�� ����������� $

������

��L�������������

�!3����:����

���������

Page 22: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

4�� ��������'�+

� !����#$%&���#$��'�� �����"�������(����"������)��� �%+���� �� �%,��� ����&&-,�,.-&/,012��32,4-+��5.26+��%� � �������7&,.32��������%��� �8�� �(�'���������������� �� ���� 8����� �����)����� $����������9:���������� 8�������$�

�<���:������������������'�

�*�����������<�

Page 23: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

����� �$�23�)���

� '������.#

� �'��$.$�;��(�$.$

� �'+�?,�".#

� �'�(�".$

� �'��$.#

� *����@����������".#

� ��*�."�(���

� ����$.#

� ����"."

� <�".#

� & <�".#

� ����:���*�����".#

� <������������"."

� �'+�$,#�"."

Page 24: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

.��� ���23��** ��������

� (�!���������������������*+,�������)���� ��*)���������������� �-�* ��.���2��-�*/����������������� ��.���'�������0����!�������� ���� ���:�����������:���������

� +��������3���

Page 25: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

�����0=

� '��������7��� �������

� ������������-�� �������������!������

� &�������������������

� �3�����������D��������������D�

� ���������'��������<�G

Page 26: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

�4�#0�

� � ��������!����

� � �������!����

� �1 2�������� �����������

� � ������������

� �34'����������<�D������������'�

� � ������*���������-����������D�!����

Page 27: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

)��>�&��&������'��

foo.ear

com/acme/Foo.class

WEB-INF/web.xmlWEB-INF/classes com/acme/FooServlet.class

com/acme/FooEJB.classcom/acme/FooEJBLocal.class

lib/foo_common.jar

foo_web.war

foo_ejb.jar

foo.war

WEB-INF/classes com/acme/Foo.class com/acme/FooServlet.class com/acme/FooEJB.class

Page 28: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

(��

���������4��������5�����������

Page 29: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

��5� � �*������+

���������� �����������C�����C;;��D�����.3��.���;:���� ���;�������;

Page 30: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

.���)��� ���(� �*���

� ���������������-�� �����������������������

���� ����

� ������������������

� java -jar glassfish.jar toto.war� <���:�������D���������$�

� mvn gf:run2�gf:start2�gf:deploy2�...� &��������������!�������;��������-��������-

� ��������������������:������

Page 31: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

�)���0=

� '������� ���������������� �!������-��������

��!����!����!3����

� ��9(�������������

� �.:.�&�'��6>�=2�=1((<�

� '������������:���<

� ������������������:

� &����������<� ����-������L���-�������������

Page 32: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

���������)-

2����(3���� �� �������$'��� ���;���� ������� ��� �'��� ���;���� ���$'��� ���<� �(=;��>?�@� �(���������������������������� �� <� �(�;��>�����$

����=;��>?����>���@� �(�,����;��>�����$

@� �(� ���������>������)��������� @�������>������� ���������� ��$

�262',��5�-3�;��>��42�2���� ���������.��231,0

Page 33: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

���������)-���������

2����(3���� �� �������$'��� ���;���� ������� ��� �'��� ���;���� ���$'��� ���<� �(=;��>?�@� �(���������������������������� �� <� �(�;��>�����$

����=;��>?����>���@� �(�,����;��>�����$

@� �(� ���������>�����������������2���(����>�� ��4��56�� �����������$

'��������-�:��������

����$.#����������

Page 34: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

���������)-�� ����������

2����(3���� �� �������$'��� ���;���� ������� ��� �'��� ���;���� ���$'��� ���<� �(=;��>?�@� �(���������������������������� �� <� �(�;��>�����$

����=;��>?����>���@� �(�,����;��>�����$

@� �(� ���������>�����������������2���(����>�� ��4��56�� ����������������)����42�����&&&&&) ����������&&&&&)��.������������)�����42�����$

7 �84��59����>�����������������)������:���2�@� �(��� �� ���6����$

,(� �<� �(=;��>?

Page 35: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

(*������-�/�����

� &�������K� ��������-�<�3�������4& <5

� �'+�$%%�D�����'+�#�4�0�;���5

� &�����������:������4�����������52�

�����2������������2��������-���2������������

K�����

� *�������������������������

� <�3�����������������44���<���������<5

� �=� ������������������

Page 36: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

?�� ������/�����

�0�;������������'� ���������$

@�� ����4������� �������!��5�.�.�M�D��������N�O

��*��/������*����

Page 37: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

?�� ��������������

%,��� ���,012�32,4-+�1���32,2��5.26+��%� � �������7&,.32�%+���� �� ��:���,���������%��� �8�� ���������A�

������� �BB��(��C��@����8� �������������� ����'���� ��

���� � ���'���� ��������������"������(����A��

Page 38: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

?�� ������/�����

�0�;������������'� ���������$

@�� ����4������� �������!��5�.�.�M�D��������N�O

��*��/������*����

Page 39: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

(*������-�/���������*

��*��&��� &'���5���>�����&�

&&�0�;���&&'���5���>�������7����0�&? ��&� ��%&&&&&&&&&&&&&&&&&&�=���*��&���242�'=�@0�6'1=@�&&&&&&&&&&&&&&&&&&��2��������� ��&����� ��%&&&&&&&&&&&&&&&&&&�@�,����&'���&�����&�&&&&)))&&�

Page 40: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

��'���������� �����3�������� �4�9

EJBContainer c = EJBContainer.createEJBContainer();

Context ic = c.getContext();

SimpleEjb ejb = (SimpleEjb)ic.lookup("java:global/sample/SimpleEjb");

ejb.sayHello();

Page 41: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

��'���������� �����3�������� �4�9

EJBContainer c = EJBContainer.createEJBContainer();

Context ic = c.getContext();

SimpleEjb ejb = (SimpleEjb)ic.lookup("java:global/sample/SimpleEjb");

ejb.sayHello();

=�D������*�."

�����!����= <�����

Page 42: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

��'���������� �����3�������� �4�9

@Test public void test() {

EJBContainer c = EJBContainer.createEJBContainer();

Context ic = c.getContext();

SimpleEjb ejb = (SimpleEjb)ic.lookup("java:global/sample/SimpleEjb");

ejb.sayHello();

}

���

Page 43: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� �������� �3���

org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build();

Page 44: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� �������� �3���

org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build();

ContainerBuilder b =server.createConfig(ContainerBuilder.Type.web);

server.addContainer(b);

Page 45: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� �������� �3���

org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build();

ContainerBuilder b =server.createConfig(ContainerBuilder.Type.web);

server.addContainer(b);

File archive = new File("hello.war"); server.getDeployer().deploy(archive);

'����!���2��� ����������-������

�������������+������!��

Page 46: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� �������� �3���

@BeforeClass public static void initContainer() { org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build();

ContainerBuilder b =server.createConfig(ContainerBuilder.Type.web);

server.addContainer(b);

File archive = new File("hello.war"); server.getDeployer().deploy(archive);

}

@Test public static void pingApplication() { ...

}

Page 47: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� �������� �3���

public static void main(String[] args) { org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build();

ContainerBuilder b =server.createConfig(ContainerBuilder.Type.web);

server.addContainer(b);

File archive = new File("realApplication.war"); server.getDeployer().deploy(archive);

}

'������������������������������������

Page 48: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

2���7������� �'����%���9

� ����������������������� �8'���4������!-��� ����5

� ���������������� ��������L������4����E��� ��� ���5

� �������������������$##B�!������

� &�������D�������8'���4'����������5

� &�������8'�������:������������4&(<����6�!5

� &���!�������������������� ��������:�8'����������

� ��-�8'���!������D���������������������

� ����������glassfish/modules{/autostart}� &��������asadmin deploy��������:���type osgi� ����������8'����������������

Page 49: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

������&�� ���������#%���;��� �6�������* 5�������������*�����

� 8'��������������������

� Service-Component�����-����������+����� ���

� <���������������� ������

�����������:����������

@Resource���3������

� =��������������������

��<�G

� =����������������

!��D����8'������

������

'����!-�����C�����C;;!��:�.���.���;�����7;����-;:���� ���PP����������P����P?�

Page 50: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

(��

��������:�����������

8'�����-��

Page 51: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

������&�� ���������#�*���&(.�6�����������* 5���������*�����

� �����������������D����

��������� ����'����:����

���������

� '������'����:�!����

�����������:�����������

� <���������������� ������

�����������:����������

@Resource���3������� '������������� ���

������������<

� '��:����������� ���!����

'����:����� ����������

'����!-�����C�����C;;!��:�.���.���;�����7;����-;:���� ���PP����������P����P?�

Page 52: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

%����A������ �B���3�����**�

� ��������������������������������

� �����!����������������-

� ������������46�!�K�&(<5

� <��������������� ����������������8'���

��������K����������

� 8'���+�&A�

� '������� ���������������� ���

� �.:.����2���*2�� *&2����2�...����8'����������

� 6�!�������������*������46�*5

� 6�+�B�8'������������B�6�!�&�����������������

Page 53: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

C*��������

Page 54: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

.��������&�����.���&���4�����'3������ �����asadmin

� -��������������������������������:�� �������

������-��������������������������� *����������:�������

��DG

� �����!��2��-������������ ��������:������ ������

� *������������������������<����D������������

� ���!������������� ��������3������)�(���DG

� � ��������������K����������-�����D�

� +�'� �������� �������DG

� ������ ����������������DG

� '������������������)� jconsole�����visualvm�������������������

Page 55: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

, ��� ������

� ��)�+';�����-�B����77�-�����������+�'��

����� ��������C� &�� �:������������4������2��8'�2� �(���5

� <��������������4�������2�����2������-2����..5

� ���������:�4�������-5

� �����!��� ����C� http://localhost:4848/management/domain � http://localhost:4848/monitoring/domain

� 1���+�'��������������������1<���!�������� 1���-��� �������:���;��������:����:��:���������

� ����� ���������������)�(2�>��(�����'8=

� �������!��

Page 56: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

(��

+�'� ��������

Page 57: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

�� �������000

� -���������:��:��

� +����2�������2� 3��:�2�'����;(� �...

� ��-���6�!

� &����2�����������2�6�!'������2�...

� ������������� ���C

� ���P3�

� 6�! �@2�&�<2�''<

� 6�!�'������������

� .=���.,��������

� 8����9���������

Page 58: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

� ��������6�)�������

� ������� ��������C;;:���� ���.��:� ����������.#."������!���4����1&����������� ����5

� ����� ��������C;;DDD.������.���;:���;:���� ���

4���8����� �D��������:������ ������.5

� &������G� �����������=��*�����4����...5

� ����������L�����

� ����������<��������2�R���������

� �D��������7���������:�����*� &������� ����6�!���� ������� �������� ���

Page 59: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

��& �������� ��������%� �#0�

� >�:�������:���

� &��!��������!��� ���� ����$."."�����.#

� &��������:2�������������������������7��������� ����$."."

� 8'������������-�������������� ����.�

� ��������������������������

Page 60: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

����� ��������#0����&� �&���

� *��������������:�4�"5

� ���.���������:�4�"5

� +�'� �����<�4�"5

� '��!���7����!������

� '���������:��77�-

� ������+��K�'��&���

�������� ������

� +������'�'*;��*�������

��������������-�

� �������������������

���������

� 6�!'�������4������77�-5

� ����������������8'��

� 1�������< �����:���

� <�������& <�����:������

� ��������:-��� ����C��'�2�

& <2����77�-2�8'��2����2�

�����-2�*����@���������2�

�����2�1&2����.

� 6'�<�����������C�*��

".$;$.#2�*'�2�"."2�+'��".#

� ���������...

Page 61: Glassfish3 & Java EE6 at GenevaJUG by Alexis Moussine-Pouchkine

� �

������.��I���.���

����C;;!��:�.���.���;��������

�D�����C���������

?�������