Move from J2EE to Java EE
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Move from J2EE to Java EE

  • 6,386 views
Uploaded on

Many enterprise systems build at 2000 - 2010 uses J2EE old specifications with Struts web framework. But nowadays J2EE improved as Java EE, with standard web framework JSF 2. With this slides you......

Many enterprise systems build at 2000 - 2010 uses J2EE old specifications with Struts web framework. But nowadays J2EE improved as Java EE, with standard web framework JSF 2. With this slides you can learn how to migrate old-styled J2EE + Struts systems to sophisticated Java EE with JSF 2 specification. This slides was used in Java Day Tokyo 2014 C4 window, presented by the author. And some slides is specialized for Japanese enterprise systems, but the theme is very standard and for almost all J2EE users in the world.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,386
On Slideshare
2,301
From Embeds
4,085
Number of Embeds
19

Actions

Shares
Downloads
44
Comments
0
Likes
5

Embeds 4,085

https://blogs.oracle.com 2,997
http://www.mushagaeshi.com 942
https://twitter.com 115
http://feedly.com 10
https://trovepromo-tf.trove-stg.com 3
https://feedly.com 3
http://www.slideee.com 2
http://www.newsblur.com 2
http://www.inoreader.com 1
http://feedreader.com 1
http://plus.url.google.com 1
http://65.55.108.4 1
http://team.mogi.intern 1
https://beta.inoreader.com 1
http://rss.neurozone.fr 1
http://java.dzone.com 1
http://blogs.oracle.com 1
https://www.inoreader.com 1
https://bazqux.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Java EE 6 is suitable for huge financial systems.
    And we made new financial architecture with many education and measurements.
    Make our enterprise future with Java EE.

Transcript

  • 1. #jdt2014-C4 Move from J2EE to Java EE May 22, 2014 Hirofumi Iwasaki Financial Service Department, Development Unit, Rakuten, Inc. http://www.rakuten.co.jp/
  • 2. #jdt2014-C4 2 Speaker Biography  Hirofumi Iwasaki – Group Manager, Technology Manager – Financial Service Department, Development Unit, Rakuten, Inc.  Carrier – Planning, designing & implements for many huge enterprise systems for financial, manufacturer, public systems with enterprise middleware, especially Java EE & .NET in Japan for about 16 years.  Opus, Lectures, etc. – Magazine: @IT (2005-2010), CIO Magazine (2009), IT Architect (2005-2009), Web+DB Press (2005), Java World (2001-2004), etc. – Lectures: JJUG CCC Spring (2014), WebLogic roundtable (2012-2013), etc. – twitter: @HirofumiIwasaki (English)
  • 3. #jdt2014-C4 3
  • 4. #jdt2014-C4 4 The History of Java EE J2EE 1.2 (1999) J2EE 1.3 (2001) J2EE 1.4 (2003) Java EE 5 (2006) Java EE 6 (2009) Java EE 7 (2013) Born! Pandemic Era Integration Era Mess Era (for EE spec) Unite to Single Standard Again!
  • 5. #jdt2014-C4 5
  • 6. #jdt2014-C4 6
  • 7. #jdt2014-C4 7
  • 8. #jdt2014-C4 8
  • 9. #jdt2014-C4 9 J2SE 1.2.2 JDK 1.1.8 JDK 8 JDK 7
  • 10. #jdt2014-C4 10 J2EE 1.2 Java EE 7 Java EE 6
  • 11. #jdt2014-C4 11
  • 12. #jdt2014-C4 12 Case Study of “J2EE” Era Systems in 2014 Developed in 2001 - 2006 Our systems is… Based on J2EE 1.3 - 1.4 With many EOL open source libs Working on EOL app server Too old to move to latest Java EE
  • 13. #jdt2014-C4 13 Not Too Late!! Move On to Java EE!!
  • 14. #jdt2014-C4 14  Standard specifications for application servers (except for MS). What's Java EE Commercial Open Source etc. Java EE Specification To make assurance double sure Liberty Profile etc. +
  • 15. #jdt2014-C4 15 Differences Between the Ages in Real Systems 2014 (To-Be) 2006 2001 EE Specs  Java EE 6, 7  J2EE 1.4  J2EE 1.2 SE Specs  JDK 7, 8  J2SDK 1.4  J2SDK 1.3 Web  JSF 2.0, 2.2 (inc. Facelet)  Struts 1.3 / 2 + JSP 2.0 + JSTL 1.1  Struts 1.1 + JSP 1.1 + commons taglib Rich Client  JavaFX 8  SWT  Swing (JFC) Business Logic  EJB 3.1, 3.2  Spring FW  POJO  Struts Action  EJB 1.1  POJO  Struts Action Data Access  JPA 2.0, 2.1  Hibernate  iBATIS  Original JDBC wrapper Logging  Apache Log4J  SLF4J + Logback  Apache Log4J  commons logging  Jakarta Log4J Almost all can implement with standard specs, except for logging.
  • 16. #jdt2014-C4 16 Java EE Application Servers Versions Vendor App Server EE 1.4 (2003-) EE 5 (2006-) EE 6 (2009-) EE 7 (2013-) Open Source GlassFish - 2.x 3.x 4.0 Oracle WebLogic 9.x 10.x 12.x - IBM WebSphere 5.1 6.x, 7.x 8.x - IBM Liberty Profile - - 8.5 - Open Source Geronimo - 2.x 3.x - Open Source TomEE+ - - 1.x - Red Hat JBoss 4.x 5.1 7.1 - Red Hat WildFly - - - 8.0 Fujitsu Interstage 9.0,9.1 9.2,10.x,11.0 11.1 - Hitachi Cosminexus 7.x 8.x 9.x - The de facto version is still EE 6
  • 17. #jdt2014-C4 17 Java SE Support Status of Java EE App Servers Vendor App Server EE 6 (2009 -) EE 7 (2013-) Ver. SE Ver. Ver. SE Ver. Open Source GlassFish 3.x SE 7 4.0 SE 7 Oracle WebLogic 12.1.x SE 6, SE 7 - - IBM WebSphere 8.x SE 6, SE 7 - - Open Source Geronimo 3.x SE 6, SE 7 - - Open Source TomEE+ 1.x SE 7 - - Red Hat JBoss 7.x SE 6, SE 7 - - Red Hat WildFly - - 8.0 SE 7, SE 8 Fujitsu Interstage 11.1 SE 6, SE 7 - - Hitachi Cosminexus 9.x SE 7 - - SE 8 is not ready for almost all servers * * WebLogic 12.1.1 only
  • 18. #jdt2014-C4 18 Changes of the Components
  • 19. #jdt2014-C4 19 Rich Clients (with business logics) Web Presentation (with business logics) Business Logic (no presentations) Typical Usage of J2EE 1.2 in 2001 Data Access Original JDBC wrapper EJBJakarta Struts DBs JTA Automatic Transaction Messaging JMS MQ Connection RMI-IIOP Other Servers EMail MTAJavaMail Call Call Call Call Call Call Swing (JFC)
  • 20. #jdt2014-C4 20 Business Logic (no presentations) Data Access Web Presentation Rich Clients Typical Usage of J2EE 1.4 in 2006 Hibernate Spring Framework Apache Struts DBs JTA Automatic Transaction Messaging JMS MQ Connection RMI-IIOP Other Servers EMail MTAJavaMail JAX Call Call Call Call Call Call SWT
  • 21. #jdt2014-C4 21 Rich Clients Web Presentation Business Logic (no presentations) Typical Usage of Java EE 6 – 7 in 2014 Data Access JPA EJBJSF DBs Java FX JTA Automatic Transaction Messaging JMS MQ Connection RMI-IIOP Other Servers EMail MTAJavaMail JAX Call Call Call Call Call Call
  • 22. #jdt2014-C4 22 Changes of the Development Environments
  • 23. #jdt2014-C4 23 Changes of the OS in Enterprise System Devs J2EE 1.2 in 2001 J2EE 1.4 in 2006 Java EE 7 in 2014
  • 24. #jdt2014-C4 24 J2EE 1.2 in 2001 J2EE 1.4 in 2006 Java EE 7 in 2014 Changes of the IDEs in Enterprise System Devs Use NetBeans 8 or IntelliJ 13.1 for EE 7 + SE 8
  • 25. #jdt2014-C4 25 Heavy Changes of the Environments from 2001 to 2014
  • 26. #jdt2014-C4 26 Question: Do you stay in still J2EE 1.4 in 2006 In your systems?
  • 27. #jdt2014-C4 27 Expected Answer: No (of course not!)
  • 28. #jdt2014-C4 28 Yes? Really? Catch up to 2014 ASAP, or die.
  • 29. #jdt2014-C4 29 Zero-Day Vulnerabilities In EOL Struts 1.3.10 * From http://www.lac.co.jp/security/alert/2014/04/24_alert_01.html
  • 30. #jdt2014-C4 30
  • 31. #jdt2014-C4 31 EOL
  • 32. #jdt2014-C4 32 By the Way, Move Forward to 2014 Styles TODAY!
  • 33. #jdt2014-C4 33 Basic Case Study: Struts 1.x  JSF 2.2
  • 34. #jdt2014-C4 34 Rich Clients (with business logics) Web Presentation (with business logics) Business Logic (no presentations) Target Tier (in 2001) Data Access Original JDBC wrapper EJBJakarta Struts DBs Swing (JFC) JTA Automatic Transaction Messaging JMS MQ Connection RMI-IIOP Other Servers EMail MTAJavaMail Call Call Call Call Call Call
  • 35. #jdt2014-C4 35 Rich Clients Web Presentation Business Logic (no presentations) Target Tier (in 2014) Data Access JPA EJBJSF DBs Java FX JTA Automatic Transaction Messaging JMS MQ Connection RMI-IIOP Other Servers EMail MTAJavaMail JAX Call Call Call Call Call Call
  • 36. #jdt2014-C4 36 The JavaServer Faces (JSF) 2 is  Standard web framework of the Java EE 7 and 6  Re-Born as JSF 2 in Java EE 6 – Please forget the useless JSF 1.x (Java EE 5) if you know.  JSF 2.0 changes (in EE 6): – Added @ViewScoped backing bean lifecycle. – Introduced new HTML page renderer ‘Facelet’.  JSF 2.2 changes (in EE 7): – Updated with renewed HTML friendly tags. – Changed the backing bean from JSF managed beans to CDI. – Introduced auto XSRF avoiding functions
  • 37. #jdt2014-C4 37 JSF 2.2! Welcome!! 37  Finally we can make enterprise web applications only with Java EE standard specifications, JSF. – Good-bye, JSP!! – So long, Struts!! – Take care, Commons!! * Recommended 2.2 or later
  • 38. #jdt2014-C4 38 <Facelet> Index.xhtml IndexBean - userName + load() + action() Front View & Backing Bean Page loading Show the property’s value of backing bean
  • 39. #jdt2014-C4 39 <Facelet> Index.xhtml IndexBean - userName + load() + action() Submit (post back) Front View & Backing Bean
  • 40. #jdt2014-C4 40 Page Transition <Facelet> index.xhtml IndexBean - id + load() + submitClick() <Facelet> next.xhtml NextBean - id + load() (1) Page redirection (2) Pass data via ‘flash’
  • 41. #jdt2014-C4 41 Page Transition <Facelet> index.xhtml IndexBean - id + load() + submitClick() <Facelet> next.xhtml NextBean - id + load() Transit to next page
  • 42. #jdt2014-C4 42 So Easy to Make! Try it TODAY!
  • 43. #jdt2014-C4 43 Make new project Select “Maven > Web Applications” Select “Properties” after project creation
  • 44. #jdt2014-C4 44 Add the “JavaServer Faces” and select up the JSF 2.2 Change pattern from “/faces/*.xhtml” to “*.xhtml” for simple & easy operations
  • 45. #jdt2014-C4 45 Open the “pom.xml” Modify “javaee-web-api” (web profile) to “javaee-api” (full profile)
  • 46. #jdt2014-C4 46 Delete old JSP Add CDI backing bean from here Make backing bean for Facelet
  • 47. #jdt2014-C4 47 Add backing bean annotations and implement Serializable interface Add getters and setters Add @PostConstruct method for page load operations
  • 48. #jdt2014-C4 48 Set the placeholder for backing bean property Input Facelet using code completion of NetBeans Set the action method for submit button
  • 49. #jdt2014-C4 49 Press the button, run the backing bean Just push the run button, compile, archiving and deploying to Java EE server automatically
  • 50. #jdt2014-C4 50 Advanced Topics: Differences Between Struts 1.x and JSF 2.2
  • 51. #jdt2014-C4 51 <<JSP>> View1 <<JSP>> View 2 Action1 + action() <<JSP>> View 3 Action2 + action() ActionForm1 - fields + validate() ActionForm2 - fields + validate() Operate Action Build Next View Operate Action Build Next View Per Action Operation struts -config.xml
  • 52. #jdt2014-C4 52 <Facelet> View 1 Backing1 - fields + load() + action() <Facelet> View 2 Backing2 - fields + load() + action() <Facelet> View 3 Backing3 - fields + load() + action() Front View & Backing Bean Per View Operation
  • 53. #jdt2014-C4 53 Paradigm Changing: Action to Page
  • 54. #jdt2014-C4 54 How to Migrate?
  • 55. #jdt2014-C4 55 Paradigm Changing - Simple <<JSP>> View1 <<JSP>> View 2 Action1 + action() <<JSP>> View 3 Action2 + action() ActionForm1 - fields + validate() ActionForm2 - fields + validate() Operate Action Build Next View Operate Action Build Next View <Facelet> View 1 Backing1 - fields + load() + action() <Facelet> View 2 Backing2 - fields + load() + action() <Facelet> View 3 Backing3 - fields + load() + action() Front View & Backing Bean
  • 56. #jdt2014-C4 56 One Action Class Paradigm Changing - Simple Event Operation Next Page Initialization Backing Bean Action Method Event Operation Backing Bean @PostConstruct Method Page Initialization Sprit to Two Parts
  • 57. #jdt2014-C4 57 Paradigm Changing – Complicated <JSP> [Button1] [Button2] Button1Action + action() Operate Action Build Next View <Facelet> [Button1] [Button2] Backing1 - fields + load() + button1() + button2() <Facelet> View 2-1 <Facelet> View 2-2 <JSP> View 2-1 <JSP> View 2-2 Button1Action + action()
  • 58. #jdt2014-C4 58 Re-Architecture: JSP to Facelet Sections Struts 1.1 JSF 2.2 HTML5 Don’t know Ready Form tag <html:form action=“/actionName”> <form jsf:id=“form> Text output <bean:write name=“bean.prop”/> #{bean.prop} Hidden <html:hidden property=“prop”/> <input type=“hidden” jsf:value=“#{bean.prop}”/> Text Field <html:text property=“prop”/> <input type=“text” jsf:value=“#{bean.prop}”/> Password Field <html:password property=“prop”/> <input type=“password” jsf:value=“#{bean.prop}”/> Check Box <html:multibox property=“prop”/> <input type=“checkbox” Submit <html:submit /> <input type=“submit” jsf:action=“#{bean.action()}”/>
  • 59. #jdt2014-C4 59 Re-Architecture: Common Processing ActionServlet + process() SpecialServlet + process() Filter + process() SpecialFilter + process() PhaseListener + process() SpecialPhLsnr + process() Filter + process() SpecialFilter + process() faces -config.xml web.xml No change Override Phase Listener, NOT Faces Servlet
  • 60. #jdt2014-C4 60 Slightly Complicated, but Simple Just try it!
  • 61. #jdt2014-C4 61 Appendix: Additional Resources For newbies Awesome for startups Nice essential references
  • 62. #jdt2014-C4 62 Appendix: Additional Resources http://www.slideshare.net/iwasakihirofumi/java-ee-7-jsf-22 How to use JSF 2.2 correctly
  • 63. #jdt2014-C4 63 Appendix: Additional Resources http://www.slideshare.net/iwasakihirofumi/future-of-java-ee-with-java-se-8 EE 7 with SE 8
  • 64. #jdt2014-C4 64 Conclusion  J2EE era is so old to migrate, but with many challenges you can do it.  Differences between Struts 1.x and JSF 2.2 are huge, the paradigm changes  Try it with NetBeans 8 and GlassFish 4 today! It’s FREE! Go Ahead, Ride the Wave! Make our enterprise future with Java EE!
  • 65. #jdt2014-C4 65