Weitere ähnliche Inhalte Kürzlich hochgeladen (20) Leveraging ColdFusion to Build Java-EE Applications: Elishia Dvorak1. Leveraging ColdFusion to build Java-EE applications
Mike Nimer| Solution Architect at Universal Mind
Elishia Dvorak | Solution Consultant at Adobe
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
2. What is ColdFusion
High level Java Application
Both a language (CFML) and a web application platform (server)
Provides seamless integration with existing Java applications.
Available since 1995
Reliable and mature, extensive feature set
165+ JSP tags
Hundreds of functions
CF was ported from C++ to Java between CF5 and CF6
Provides necessary services
.Net integration, PDF generation, Image manipulation, etc…
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
3. Using ColdFusion (in Java)
Use CFCProxy to treat CF like a large library and invoke
ColdFusion tags and functions inside your java
classes/servlets. (New in CF10)
Use ColdFusion as the "View" layer in an existing Java
Framework, such as Spring MVC.
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
4. ColdFusion Parts
.CFM Page “is like a” JSP Page
.CFC File “is like a” Java Class / POJO
Compiler
CFMServlet
Filters
Extra Servlets
REST support
Flex Integration
RDS (IDE integration)
etc.
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
5. Why ColdFusion (for Java developers)
PDF Integration Event Gateways
CFDOCUMENT
SMS / IM Gateway
Email
CFPDF
CFMAIL (2million / hr)
Virtual File System CFExchange
In Memory, S3, ZIP, etc. CFPOP/CFIMAP
Query of Query CFPresentation
.NET integration
Encryption
CFDUMP
RSA B-Safe Crypto-J library and more..
OEM features
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
6. CFCProxy
String cfcPath =
req.getRealPath("/demos-inf/components/" +
"cfExample.cfc");
CFCProxy myCFC = new CFCProxy(cfcPath, false);
Object[] myArgs = {img};
Object cfcResult =
myCFC.invoke("convertImage", myArgs);
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
7. CFCPROXY Demos
Query-of-Query
Html to PDF
PDF Forms
Dynamic Presentation Creation
Excel Integration
Image Manipulation
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
8. ColdFusion Classloader & CFCProxy
CFCProxy & the CF ClassLoader
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-
class>coldfusion.bootstrap.BootstrapServlet</servlet-class>
<init-param>
<param-name>servlet.class</param-name>
<param-value>com.mikenimer.MyServlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
9. SpringMVC
MVC Java Framework
Clear separation of roles - Controllers, models, view helpers,
filters, Interceptors, validation, etc.
View Helpers support multiple output formats from the same
url
return Web page to browser
return JSON to IPhone version of site
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
10. SpringMVC
Why ColdFusion instead of JSP?
CFTAGS feel right around HTML
Raw power available in CF
JSP Tags work in CF Pages too
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
11. SpringMVC "palladium" ViewHelper
Palladium will put the “model” properties into the ColdFusion
request scope.
Palladium allows you to pass Spring beans into ColdFusion.
#request.palladium.beans.<name>#
Palladium can auto convert java objects into CF Friendly types
(default is off)
Collections into CF Array (Vector)
Convert NULL into default “”
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
13. SpringMVC "palladium" Config
<bean class="org.springframework.
web.servlet.view.InternalResourceViewResolver">
<property
name="viewClass”
value="com.mikenimer.palladium.spring.mvc.views.ColdFusionView"
/>
<property
name="prefix"
value="/kitchensink-inf/views/propertytest-views/" />
<property
name="suffix" value=".cfm" />
</bean>
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
14. Useful Links
ColdFusion
http://www.adobe.com/products/coldfusion-family.html
Palladium project
https://github.com/mnimer/palladium
Blog: "ColdFusion (libraries) for Java Developers"
http://www.mikenimer.com/?p=857
Twitter
@mnimer
@elishdvorak
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.