| By Yakov Fain | Article Rating: |
|
| June 15, 2011 03:11 PM EDT | Reads: |
1,547 |
If you are developing a distributed application, you can’t get by with any single technology. You’re using at least one programming language and one or more frameworks. I work in the world that requires Adobe Flex and Java EE knowledge.
To develop a front end I use, at a minimum, HTML, MXML, ActionScript, and Flex framework (add Eclipse with WTP and Flash Builder). The server side’s consists of a Java Servlet Container with installed BlazeDS Web application (throw in some XML configuration files) that talks to the business tier of your application, which ideally, has just Plain Old Java Objects (yeah, right!) that embed SQL queries talking to a DBMS using some JDBC driver. Almost forgotten about the ANT build tool.
Have I mentioned that this dozen of different pieces of software is a bare minimum? The client-server technology of early 90th with its 3-piece set (e.g. VB-SQL-Oracle) sounds like a toy these days.
Each of these pieces of software (a.k.a. moving part) can, potentially, give you some problems. That’s why I’m and always was against bringing into the architecture any additional tools or framework that require developers writing more code and make this card house more shaky and the finger-pointing game more likely.
That’s why I don’t like any Flex MVC framework that requires you to write extra code. That’s why I don’t like Object-Relational Mapping frameworks like Hibernate. That’s why I don’t like Java Persistence API with its 500-page spec that, supposed to “make your life easier” comparing to elegant SQL.
To make the long story short, whenever I can, I use our own open source code generator Clear Data Builder that generates the basic CRUD application from requiring very little of manual coding. As for the communication with the database, there is a light-weight (no, really!) SQL mapping framework called MyBatis (formerly iBatis). It’s not an 800-pound gorilla Hibernate, but requires you to supply your own SQL as Java annotations and map it to Java DTOs. It’s a nice and easy process (see this tutorial).
My yesterday’s morning started as usual – CDB obediently generated CRUD, and started the program that was supposed to execute my SQL query and bring the data first the Java and then to Flex UI. MyBatis conveniently displays in Eclipse console the SQL it executes and the returned result set. Here’s my SQL, but there is no data ands no errors. Trying the same SQL in Oracle SQL Developer – the data’s there. The cleaning of the project didn’t help. Log files show no errors. Who would you blame next? MyBatis doesn’t generate any code – it just executes my SQL. I started to think of jdbc driver. When to Google – no one blames this Oracle JDBC driver in no reporting errors.
Here comes the BlazeDS little dirty secret. Its folder WEB-INF/classes has a little used by the Apache Commons Logging configuration file commons-logging.properties :
Here it is:
# suppress logging for 3rd-party libraries using commons-logging
# Flex logging is not configured here. It is configured through in the logging section of flex-config.xml
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
This last option (NoOpLogs) means suppress errors! I was mad. I could understands if my fellow developer from the BlaseDS team wanted to minimize the output and temporarily change set this option. But the comment in the file explicitely states that the was done intentionally to “suppress logging for 3rd-party libraries”! Changing NoOpLog to Log4JLogger fixed the situation, and I started seeing a lot of output on the console. Sure enough, there was a run-time error returned by the Oracle driver that explain the problem…two hours later.
Hopefully, revealing this BlazeDS little dirty secret will same someone a little grief. But I’m still wondering, “Why the NoOpLog proudly made it into BlazeDS?”
For more little secrets, attend our 4th Annual Symposium in New York City in August.
Read the original blog entry...
Published June 15, 2011 Reads 1,547
Copyright © 2011 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Yakov Fain
Yakov Fain is a Managing Director of Farata Systems, consulting, training and product company. He has authored several Java books, dozens of technical articles. SYS-CON Books released his latest co-authored book , Rich Internet Applications with Adobe Flex and Java: Secrets of the Masters in Spring 2007. Sun Microsystems has nominated and awarded Yakov with the title Java Champion. He leads the Princeton Java Users Group. He is an Adobe Certified Flex Instructor. Yakov co-athored the O'Reilly book "Enterprise Application Development with Flex". He twits at twitter.com/yfain.
- Three Tips to Successfully Load Test Adobe Flex Applications
- Adobe AIR Dead on Desktop Linux
- BlazeDS and Its Dirty Little Secret
- Tiggr Is Built with JSF, RichFaces, Seam and Flex
- Adobe SocialAnalytics Begins Global Beta Program
- Adobe releases Customer Experience Enterprise Platform and Flash Builder 4.5.1
- Sherlock Holmes and Adobe's Error #2032
- NVIDIA Tegra 2 Super Chip Wins 'Best Choice' Award at Computex 2011
- Adobe SearchCenter+ Enhanced with Integration of International Organic Search Data
- Dassault Systèmes Launches Version 6 Release 2012
- Adobe Announces Adobe Tag Manager for the Online Marketing Suite
- Flexera Software Launches Workflow Manager to Help Companies Implement Enterprise License Optimization Best Practice Processes
- GISUser.com GIS Data, news, jobs, software tips, mashup news – Developing Location Based Services (LBS) Mobile Applications
- Getting Ready for a Java Technical Job Interview with President Obama
- Adobe Falls Out of Love with Linux
- Three Tips to Successfully Load Test Adobe Flex Applications
- RIM rolls out BlackBerry WebWorks SDK 2.0 with PlayBook launch
- Adobe AIR Dead on Desktop Linux
- BlazeDS and Its Dirty Little Secret
- Software Pricing Trends
- Tiggr Is Built with JSF, RichFaces, Seam and Flex
- Adobe SocialAnalytics Begins Global Beta Program
- Adobe releases Customer Experience Enterprise Platform and Flash Builder 4.5.1
- Sherlock Holmes and Adobe's Error #2032
- Where Are RIA Technologies Headed in 2008?
- Cover Story: How to Increase the Frame Rates of Your Flash Movies
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Your First Adobe Flex Application with a ColdFusion Backend
- Adobe Flex 2: Advanced DataGrid
- How To Create a Photo Slide Show ...
- i-Technology Blog: Death-Knell For "Rich Media? Hardly!
- Adobe Flex Interface Customization - Themes, Styles, Skins
- Adobe/Macromedia - Microsoft, Look Out!
- Personal Branding Checklist
- Has the Technology Bounceback Begun?
- "Real-World Flex" by Adobe's Christophe Coenraets
































