Download Contents at a Glance - Amazon Web Services

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
ORACLE FLUFF / Java EE Applications on the Oracle Java Cloud / Oak / 715-8 / FM
Contents at a Glance
1 Java EE and Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 The Oracle Java Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Build and Deploy with NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4 Servlets, Filters, and Listeners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 JavaServer Pages, JSTL, and Expression Language . . . . . . . . . . . . . . . 97
6 JavaServer Faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7 Enterprise JavaBeans (Session Beans) . . . . . . . . . . . . . . . . . . . . . . . 151
8 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
9 Persistence Using the Oracle Database Cloud Service . . . . . . . . . . 203
A Java EE Technologies and JSRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
B Application Servers Compatible with Java EE 5, 6, and 7 . . . . . . . . 243
C Supported and Unsupported Technologies, Services, and APIs . . . . 247
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
00-FM.indd 5
v
24/07/14 11:57 am
ORACLE FLUFF / Java EE Applications on the Oracle Java Cloud / Oak / 715-8 / FM
Contents
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
1 Java EE and Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Java Editions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Java EE Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Application Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Open Source vs. Commercial . . . . . . . . . . . . . . . . . . . . . 4
Reference Implementation . . . . . . . . . . . . . . . . . . . . . . . . 6
API and Technology Specification . . . . . . . . . . . . . . . . . . . . . . . 7
Java Community Process (JCP) and Java EE . . . . . . . . . . . . 8
Java EE Compatible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Web Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Going Around in Circles . . . . . . . . . . . . . . . . . . . . . . . . . 11
What Is Cloud Computing? . . . . . . . . . . . . . . . . . . . . . . . 12
Why Cloud Computing? . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Concerns About Cloud Computing . . . . . . . . . . . . . . . . . 15
Private, Public, and Hybrid Clouds . . . . . . . . . . . . . . . . . 16
Cloud as a Leveler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Java EE on the Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Competing Technologies: Alternatives
to Java on the Cloud . . . . . . . . . . . . . . . . . . . . . . . . . 17
00-FM.indd 7
vii
24/07/14 11:57 am
ORACLE FLUFF / Java EE Applications on the Oracle Java Cloud / Oak / 715-8 / FM
viii
Java EE Applications on Oracle Java Cloud
Standards and Java EE 7 . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Java EE Vendors and Alternatives . . . . . . . . . . . . . . . . . . . 19
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2 The Oracle Java Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Oracle’s Cloud Foray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Oracle Cloud Constituents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
SaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
PaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Java Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Pricing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Trial Signup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
My Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
IDE Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Oracle Java Cloud Service SDK . . . . . . . . . . . . . . . . . . . . 36
Users and Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3 Build and Deploy with NetBeans . . . . . . . . . . . . . . . . . . . . . . . 49
Development IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Why NetBeans? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Building with Java EE Technologies . . . . . . . . . . . . . . . . . . . . . . 51
First NetBeans Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
What Happened? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Files and Directories Generated . . . . . . . . . . . . . . . . . . . . 58
The Cloud Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Clean and Build, Verify . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Web Application Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Packaging the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
We Are at WAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4 Servlets, Filters, and Listeners . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Servlet Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
HttpServlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Servlet One . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Servlet Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
00-FM.indd 8
24/07/14 11:57 am
ORACLE FLUFF / Java EE Applications on the Oracle Java Cloud / Oak / 715-8 / FM
Contents
ix
HttpServletRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
HttpServletResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
web.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
weblogic.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Sharing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Session Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
HttpSession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
RequestDispatcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
WebLogic-Specific Servlet Capabilities on OJC . . . . . . . . 82
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Listeners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
View Java Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5 JavaServer Pages, JSTL, and Expression Language . . . . . . . . . . . 97
The Origin of JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
JSP on the Oracle Java Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
JSP Internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
JSP Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Servlet Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
JSP Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
JSP Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
JSP Scriptlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
JSP Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Implicit Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
JSP Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Tags and Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Custom Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Expression Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
JSTL Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Using Tags in a JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6 JavaServer Faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
From JSP to Struts to JSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
JSF on the Oracle Java Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Facelets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
JSF Managed Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
00-FM.indd 9
24/07/14 11:57 am
ORACLE FLUFF / Java EE Applications on the Oracle Java Cloud / Oak / 715-8 / FM
x
Java EE Applications on Oracle Java Cloud
Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7 Enterprise JavaBeans (Session Beans) . . . . . . . . . . . . . . . . . . . . 151
Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
EJB in OJC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Why EJB? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Session Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Stateless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Stateful . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Interfaces: Local or Remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Developing an Enterprise Application with EJBs . . . . . . . . . . . . . 157
New Session Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Inject the Session Bean into the Servlet . . . . . . . . . . . . . . 163
Package and Run from NetBeans . . . . . . . . . . . . . . . . . . . 164
Deploy Using the Java Cloud Services Control . . . . . . . . . 164
Lifecycle of a Session Bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Transaction Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Rollback and Exception Handling . . . . . . . . . . . . . . . . . . 176
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
8 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Developing a SOAP Web Service . . . . . . . . . . . . . . . . . . . . . . . . 181
WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Web Service Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
RESTful Web Services Using JAX-RS API . . . . . . . . . . . . . . . . . . 194
Building RESTful Web Services on the OJC . . . . . . . . . . . 195
JAX-RS 1.1 Fix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Modify the REST Resource . . . . . . . . . . . . . . . . . . . . . . . . 197
RESTful Web Service Client . . . . . . . . . . . . . . . . . . . . . . . 199
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9 Persistence Using the Oracle Database Cloud Service . . . . . . . 203
Persistence on the Oracle Cloud . . . . . . . . . . . . . . . . . . . . . . . . 204
Oracle Database Cloud Service . . . . . . . . . . . . . . . . . . . . . . . . . 204
Explore Database Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Oracle Apex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Java Cloud: Database Cloud Integration . . . . . . . . . . . . . . 211
JPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Persistence Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
00-FM.indd 10
24/07/14 11:57 am
ORACLE FLUFF / Java EE Applications on the Oracle Java Cloud / Oak / 715-8 / FM
Contents
xi
Developing an Entity Application . . . . . . . . . . . . . . . . . . . 214
Add Entity from a Servlet . . . . . . . . . . . . . . . . . . . . . . . . . 219
Find and Update Entity . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Java Persistence Query Language . . . . . . . . . . . . . . . . . . . 223
CRUD JSF for Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
A Java EE Technologies and JSRs . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Java Platform, Enterprise Edition 5 (Java EE 5) JSR 244 . . . . . . . . 234
Java Platform, Enterprise Edition 6 (Java EE 6) JSR 316 . . . . . . . . 235
Java Platform, Enterprise Edition 6
(Java EE 6) Web Profile . . . . . . . . . . . . . . . . . . . . . . . 237
Java Platform, Enterprise Edition 7 (Java EE 7) JSR 342 . . . . . . . . 238
Java Platform, Enterprise Edition 7
(Java EE 7) Web Profile . . . . . . . . . . . . . . . . . . . . . . . 241
B Application Servers Compatible with Java EE 5, 6, and 7 . . . . . 243
Java EE 5–Compatible Implementations . . . . . . . . . . . . . . . . . . . 244
Java EE 6 Full Platform–Compatible Implementations . . . . . . . . . 245
Java EE 6 Web Profile–Compatible Implementations . . . . 245
Java EE 7 Full Platform–Compatible Implementations . . . . . . . . . 246
Java EE 7 Web Profile–Compatible Implementations . . . . 246
C Supported and Unsupported Technologies, Services, and APIs . . 247
Technologies and Services Supported . . . . . . . . . . . . . . . . . . . . 248
Java EE 5 and 6 Specifications Supported . . . . . . . . . . . . . 248
Public WebLogic Server 10.3.6
APIs and Capabilities Supported . . . . . . . . . . . . . . . 249
Unsupported Features and APIs . . . . . . . . . . . . . . . . . . . . . . . . . 250
Unsupported WebLogic Server 10.3.6
APIs and Capabilities . . . . . . . . . . . . . . . . . . . . . . . . 251
Whitelist Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
00-FM.indd 11
24/07/14 11:57 am
Related documents