Development
The server environment is only half the picture when looking at J2EE application servers. The other equally-important piece of the puzzle is development; how well does it help developers get their job done simply and efficiently? Let’s look deeper.
Development Environment
The primary weakness of JRun shows up when you begin to get ready for development. Whereas the leading commercial application servers have an Integrated Development Environment (IDE) for developers to easily work with their application server, there is no such Java IDE by Macromedia that integrates directly with JRun. Sure, Dreamweaver MX will work for JSP development, but when it comes to developing and debugging Java classes, Dreamweaver falls short. The upside to all of this is that you aren’t forced to adopt a new programming environment to work with JRun. Developers can integrate JRun with their existing IDEs, or an IDE of choice. Borland JBuilder, IDEA IntelliJ, Sun Forte, Eclipse, NetBeans, and WebGain (recently purchased by Togethersoft.com – I have no idea where they will take it.) are all IDEs that people are using successfully with JRun. It might take a little effort, but it can be done. (FYI: I am currently compiling instructions for using JRun with the major third-party IDEs at http://www.drewfalkman.com/resources/j2eeIDEs.jsp).
JDBC Drivers
Most J2EE applications these days work with databases. JRun provides a number of Type IV (these are drivers written natively in Java, generally the most efficient for J2EE applications) JDBC drivers for databases from the major vendors, including:
- Oracle
- Microsoft SQL Server
- Sybase
- IBM DB2
- Informix
JSP/Servlet Development
JSP and servlet development is where most J2EE developers spend the majority of their time. The JRun 4 JSP/servlet container is a straightforward implementation of the Servlet 2.3 and JSP 1.2 standards, including the new additions that are included in that specification, most notably servlet filters, which allow developers to write servlets that can execute before other resources are loaded.
JSP development has historically been a core strength of JRun, due to the fact that they previously had a number of proprietary resources to speed up development and provided additional tools to the JSP developer. Some of these items were dropped in this release:
- The global.jsa file, which worked similar to the global.asa file in Active Server Pages, executing code at certain points in each page execution.
- The JRun custom tag library, which provided tools such as <jrun:sql> for querying databases and <jrun:foreach> to execute loops. This has been deprecated in favor of the JSTL standard, which will be included in the J2EE 1.4 specification currently in beta.
- Server-side includes, presentation templates and taglets, all of which allowed for non-JSP server-side parsing. Most likely these were ditched to stick with a straightforward J2EE implementation.
One unique programming construct that did remain for this version is the JRun Server Tags (JST) API. This allows for JSP developers to create JSP custom tags written in JSP. One of the main types of customers that JRun is aimed at is the beginning JSP developer – the developer who understands basic JSP syntax, but is not necessarily a full object-oriented programmer. For these users, JST is a strong tool, allowing them to create tags that perform business logic, yet enabling them to keep the logic outside of their JSP pages, instead embedding them into custom tags. For example, I could create the <drew:myTool> tag to do whatever I want. The way JST works is simple: a page is written that performs the logic, using special tags just for this purpose, such as <%@tagAttribute%> and <%@tag%>. The user saves the file with a .jst ending (e.g. myTool.jst), which signals to JRun to parse this as a custom tag, thus compiling the template to a Java class and creating the necessary Tag Library Definition (TLD). The user than uses the JSP standard tag <%@taglib%> in calling JSP templates, specifying the directory where the .jst file is located for the uri attribute and naming a prefix for the tag.
EJB Development
The EJB container is entirely different from that of previous versions of JRun. JRun 4 is EJB 2.0 compliant, which includes support for new Message Driven Beans (MDB), entity beans and session beans. For anyone who hasn’t used EJB at all, beans are a standard method for deploying distributable objects using the J2EE container. Session beans can track information and maintain state or contain application business logic. Entity beans are for data persistence and to synchronize application objects with databases, and MDBs are used to interact with JMS.
One of the unique aspects of JRun is its Store Manager for maintaining entity beans that use Container Managed Persistence (CMP). Using CMP and the store manager can enable EJB components to handle the creation of new database tables and columns based on a deployment descriptor, as well as interact with existing tables. Additionally, using EJB Query Language (EJB-QL), a language similar to Structured Query Language (SQL), developers can save additional time interacting with entity beans.
The JRun Deployment Wizard
A key time-saving feature included with JRun for EJB developers is the JRun Deployment Wizard. This wizard can be run as a standalone tool or as a plugin within JBuilder, IntelliJ and (according to the documentation, but not to newsgroup postings) Forte. This wizard will help with EJB development by auto-generating beans of any type (message beans, container- and bean-managed entity beans and stateless/stateful session beans plus Web Services) along with descriptors and the necessary stub classes. In the case of entity beans, developers need only select database tables and columns and the deployment wizard will auto-create the bean. (JRun also offers hot deployment options discussed later.)
Last Modified
December 27, 2002
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|