Click here to close now.

Welcome!

Eclipse Authors: XebiaLabs Blog, Ken Fogel, Sematext Blog, Marcin Warpechowski, Trevor Parsons

Related Topics: Eclipse, Java, Open Source

Eclipse: Article

How to Bring Eclipse 3.1, J2SE 5.0, and Tomcat 5.0 Together

How to create a Web project that has Java classes located in different packages and how we use ANT

Eclipse is the most popular Open Source IDE on the Java market and the latest 3.1 release supports all the new language elements of J2SE 5.0.

In this article I'll show you see how to create a Web project that has Java classes located in different packages and how to use ANT to build this project and JUnit to test it. I assume that you have J2SE 5.0 installed and are familiar with Ant and JUnit.

Building Java 5.0 Applications with Eclipse
We'll build a servlet that will demo some new Java 5.0 features and do some basic tasks like creating a session to track user visits to multiple Web pages. This code can easily be extended to store a user ID in the session that will travel with her as the site is navigated. The value of the visit counter is stored in the session so multiple visits to the page will be counted (this includes the page refreshes after pressing the browser's "Reload" button). If the counter goes over five, the counter gets cleared.

Installing Tomcat
I've used Tomcat 5.0, which is available at http://jakarta.apache.org/tomcat/. Installation is a breeze, and it's smart enough to find your installation of J2SE 5.0. It also lets you test Java servlets easily on your own machine. Other that making you restart the server every time a new servlet is deployed, Tomcat is a great server for what we're doing and many other tasks.

Creating a New Project in Eclipse
To create our servlet, start by creating a new Java project by selecting the menus File, New, and Other. Then specify the name of the project, say, MyJavaProject, (make sure that J2SE 5.0 is selected as the default JRE), and click Finish. Actually, Eclipse lets you select a different version of the Java runtime at any time using the menus Windows, Preferences, Java > Installed JRE's. You can also set the compiler compliance level on the project level by selecting Java Compiler under the project's properties.

Since the standard J2SE 5.0 SDK doesn't support servlets, let's add the servlet.jar that comes with Tomcat. It's in its directory common\lib\servlet-api.jar. To add this external jar to an Eclipse project, right-click on MyJavaProject, select properties, Java Build Path, and under the Libraries tab add this external jar. Now our servlets will compile.

Eclipse by itself doesn't support debugging with Tomcat unless you add some custom Web development plug-ins to it, such as Web Tools Project (WTP). It's possible to debug Tomcat applications using Eclipse remote debugging capabilities. For more information see the Java Developer's Journal at http://java.sys-con.com/read/44918.htm.

Some of the New J2SE 5.0 Features
Let's create several supporting classes that will be used by our servlet and demonstrate some of the J2SE 5.0 capabilities. It's always a good idea to keep classes in separate packages based on functionality or some other criteria. Let's call the package "support." Just right-click on the project name, select "New Package," and enter the package name.

Autoboxing
Create a new class called Boxer that will support Java 5.0 enhanced boxing and unboxing operations. Right-click on the Java project, and select a New Class (un-check creation of the main method). Enter the source code of the class as shown in Listing 1 at the end of the article.

Just press Ctrl-S and the class is saved and compiled. As you can see, it has three methods for boxing, unboxing, and simplified adding to a collection.

Generics
Now create another class called Generic that shows how to eliminate the need for casting when retrieving elements from a collection by introducing generic collection types. You can specify the type of collection elements during its creation (see Listing 2). Generic types let objects of the same class operate safely on objects of different types. For example, they provide compile-time assurances that a List<String> always contains Strings and a List<Integer> always contains Integers.

Eclipse can handle both generic and non-generic types:

  • Generic types can be safely renamed.
  • Type variables can be safely renamed.
  • Generic methods can be safely extracted from or inlined into generic code.
  • Code assist can automatically insert appropriate type parameters in parameterized types.
In addition, a new refactoring option has been added. "Infer Generic Type Arguments" can infer type parameters for every type reference in a class, a package, or an entire project.

Enhanced For Loop
The next useful feature of J2SE 5.0 provides support for the enhanced "for" loop. This spares us from creating an iterator, navigating it, and retrieving elements from it. Create this class in Eclipse in the same package support (see Listing 3).

Java printf Function
Now, C-lovers, you can use the printf function in Java so create one more class as in Listing 4.

Methods with Variable Number of Arguments (varargs)
Java 5.0 lets you create methods with a variable number of arguments as in Listing 5. This method's signature is pretty similar to the public static String[] format(String str, Object[] args), however, it's more elegant to invoke since multiple arguments can be just passed on the command line rather than having to construct a whole new array.

Don't forget to create this class in the package support.

Static Imports
Allows importing static constants and methods, saves on extra mentioning of static classes (see Listing 6).

Creating a Servlet
Now that we've created all the supporting classes, let's create a servlet. First, we create a new package called servlet in our project.

Then, we can just create a SampleServlet class by selecting HttpServlet as a superclass in the Eclipse class creation window.

Servlets can handle all the HTTP protocol invocation types. GET and POST are the most common ones, through. Servlet code is in Listing 7.

More Stories By Boris Minkin

Boris Minkin is a Senior Technical Architect of a major financial corporation. He has more than 15 years of experience working in various areas of information technology and financial services. Boris is currently pursuing his Masters degree at Stevens Institute of Technology, New Jersey. His professional interests are in the Internet technology, service-oriented architecture, enterprise application architecture, multi-platform distributed applications, and relational database design. You can contact Boris at [email protected]

Comments (13) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
sumeet jaju 07/28/06 07:40:26 AM EDT

Thanks for you

SYS-CON Belgium News Desk 01/07/06 02:16:35 PM EST

We'll build a servlet that will demo some new Java 5.0 features and do some basic tasks like creating a session to track user visits to multiple Web pages. This code can easily be extended to store a user ID in the session that will travel with her as the site is navigated. The value of the visit counter is stored in the session so multiple visits to the page will be counted (this includes the page refreshes after pressing the browser's 'Reload' button). If the counter goes over five, the counter gets cleared.

SYS-CON Australia News Desk 01/06/06 12:59:13 PM EST

We'll build a servlet that will demo some new Java 5.0 features and do some basic tasks like creating a session to track user visits to multiple Web pages. This code can easily be extended to store a user ID in the session that will travel with her as the site is navigated. The value of the visit counter is stored in the session so multiple visits to the page will be counted (this includes the page refreshes after pressing the browser's 'Reload' button). If the counter goes over five, the counter gets cleared.

Lester D'Souza 01/06/06 12:24:47 PM EST

A great article. I had to struggle to get it working due to some errors and typos. I wish I could upload my entire Eclipse project as part of the feedback. The nice thing about this set up was that I could modify my Servlet, then using the create-war, undeploy and deploy my changes on the tomcat server with the click of a button. Tomcat would detect my changes, and when I refreshed the browser, I could see my changes. This is an ideal setup for any web based development. Also I would like to mention that this is my first experience with Eclipse, Tomcat and Ant. I would like to rewrite this article and leave out the J2SE 5.0 stuff, since it does not fit in very well. Also I was able to use Junit to test the code.

Eclipse News Desk 01/05/06 08:31:49 PM EST

We'll build a servlet that will demo some new Java 5.0 features and do some basic tasks like creating a session to track user visits to multiple Web pages. This code can easily be extended to store a user ID in the session that will travel with her as the site is navigated. The value of the visit counter is stored in the session so multiple visits to the page will be counted (this includes the page refreshes after pressing the browser's 'Reload' button). If the counter goes over five, the counter gets cleared.

SYS-CON Australia News Desk 01/05/06 07:38:14 PM EST

We'll build a servlet that will demo some new Java 5.0 features and do some basic tasks like creating a session to track user visits to multiple Web pages. This code can easily be extended to store a user ID in the session that will travel with her as the site is navigated. The value of the visit counter is stored in the session so multiple visits to the page will be counted (this includes the page refreshes after pressing the browser's 'Reload' button). If the counter goes over five, the counter gets cleared.

Carrie Latimer 01/05/06 07:01:44 PM EST

I ran into the same issues Eric ran into. Help please. Thank you and take care.

Carrie Latimer 01/05/06 07:01:34 PM EST

I ran into the same issues Eric ran into. Help please. Thank you and take care.

Eric Bresie 11/16/05 09:02:26 AM EST

I was reading your article about Eclipse and Tomcat and was trying to follow on and ran into a snag or two.

One problem that I did find was that the SampleProgram has a class name in the file of TestProgram.

The other problem, and I'm not sure if this may not be an Eclipse project setup issue, environment issues, or something else, but when I try to compile the SampleProgram and reference the ForLoop's convertToString, it indicates that it cannot be resolved. I believe I have the classes included into the project correctly, so I am still a little confused.

Since this is my first encounter with Java 5's new features such as the new forloops, I am not as familiar with this and was hoping you might have some idea.

Do you have any ideas? Have you encountered a similar problem?

Thanks ahead of time.

Eric Bresie
[email protected]

Servlet Newbie 11/10/05 12:22:30 PM EST

Very good article!

...however: I cannot seem to get the servlet running. I can see that it is deployed, but if I type http://localhost:8080/myapp/SampleServlet/
it gives me a required resource not found...

Help please

Eugenio Leal 11/01/05 07:47:57 PM EST

Eclipse sucks. Websphere sucks. Netbeans Rules.

Bernie's ramblings... 10/20/05 04:46:38 AM EDT

Trackback Added: Eclipse, J2SE5 and Tomcat; I’ve always liked to read about Eclipse, and knowing more about it has often made me able to work better. There’s always just some gurus out there that seems to be able to make programming a bit more bearable. An article I came across today...

Enterprise Open Source Magazine News Desk 10/17/05 03:31:03 PM EDT

Enterprise Open Source Magazine - How to Bring Eclipse 3.1, J2SE 5.0, and Tomcat 5.0 Together
We'll build a servlet that will demo some new Java 5.0 features and do some basic tasks like creating a session to track user visits to multiple Web pages. This code can easily be extended to store a user ID in the session that will travel with her as the site is navigated. The value of the visit counter is stored in the session so multiple visits to the page will be counted (this includes the page refreshes after pressing the browser's 'Reload' button). If the counter goes over five, the counter gets cleared.

@ThingsExpo Stories
P2P RTC will impact the landscape of communications, shifting from traditional telephony style communications models to OTT (Over-The-Top) cloud assisted & PaaS (Platform as a Service) communication services. The P2P shift will impact many areas of our lives, from mobile communication, human interactive web services, RTC and telephony infrastructure, user federation, security and privacy implications, business costs, and scalability. In his session at @ThingsExpo, Robin Raymond, Chief Architect at Hookflash, will walk through the shifting landscape of traditional telephone and voice services ...
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In his session at Internet of @ThingsExpo, James Kirkland, Chief Architect for the Internet of Things and Intelligent Systems at Red Hat, described how to revolutioniz...
For IoT to grow as quickly as analyst firms’ project, a lot is going to fall on developers to quickly bring applications to market. But the lack of a standard development platform threatens to slow growth and make application development more time consuming and costly, much like we’ve seen in the mobile space. In his session at @ThingsExpo, Mike Weiner is Product Manager of the Omega DevCloud with KORE Telematics Inc., will discuss the evolving requirements for developers as IoT matures and conduct a live demonstration of how quickly application development can happen when the need to comply...
Container frameworks, such as Docker, provide a variety of benefits, including density of deployment across infrastructure, convenience for application developers to push updates with low operational hand-holding, and a fairly well-defined deployment workflow that can be orchestrated. Container frameworks also enable a DevOps approach to application development by cleanly separating concerns between operations and development teams. But running multi-container, multi-server apps with containers is very hard. You have to learn five new and different technologies and best practices (libswarm, sy...
SYS-CON Events announced today that DragonGlass, an enterprise search platform, will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. After eleven years of designing and building custom applications, OpenCrowd has launched DragonGlass, a cloud-based platform that enables the development of search-based applications. These are a new breed of applications that utilize a search index as their backbone for data retrieval. They can easily adapt to new data sets and provide access to both structured and unstruc...
Converging digital disruptions is creating a major sea change - Cisco calls this the Internet of Everything (IoE). IoE is the network connection of People, Process, Data and Things, fueled by Cloud, Mobile, Social, Analytics and Security, and it represents a $19Trillion value-at-stake over the next 10 years. In her keynote at @ThingsExpo, Manjula Talreja, VP of Cisco Consulting Services, will discuss IoE and the enormous opportunities it provides to public and private firms alike. She will share what businesses must do to thrive in the IoE economy, citing examples from several industry sector...
With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo in Silicon Valley. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be! Internet of @ThingsExpo, taking place Nov 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 17th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal an...
The security devil is always in the details of the attack: the ones you've endured, the ones you prepare yourself to fend off, and the ones that, you fear, will catch you completely unaware and defenseless. The Internet of Things (IoT) is nothing if not an endless proliferation of details. It's the vision of a world in which continuous Internet connectivity and addressability is embedded into a growing range of human artifacts, into the natural world, and even into our smartphones, appliances, and physical persons. In the IoT vision, every new "thing" - sensor, actuator, data source, data con...
IoT is still a vague buzzword for many people. In his session at @ThingsExpo, Mike Kavis, Vice President & Principal Cloud Architect at Cloud Technology Partners, discussed the business value of IoT that goes far beyond the general public's perception that IoT is all about wearables and home consumer services. He also discussed how IoT is perceived by investors and how venture capitalist access this space. Other topics discussed were barriers to success, what is new, what is old, and what the future may hold. Mike Kavis is Vice President & Principal Cloud Architect at Cloud Technology Pa...
Disruptive macro trends in technology are impacting and dramatically changing the "art of the possible" relative to supply chain management practices through the innovative use of IoT, cloud, machine learning and Big Data to enable connected ecosystems of engagement. Enterprise informatics can now move beyond point solutions that merely monitor the past and implement integrated enterprise fabrics that enable end-to-end supply chain visibility to improve customer service delivery and optimize supplier management. Learn about enterprise architecture strategies for designing connected systems tha...
There's Big Data, then there's really Big Data from the Internet of Things. IoT is evolving to include many data possibilities like new types of event, log and network data. The volumes are enormous, generating tens of billions of logs per day, which raise data challenges. Early IoT deployments are relying heavily on both the cloud and managed service providers to navigate these challenges. In her session at Big Data Expo®, Hannah Smalltree, Director at Treasure Data, discussed how IoT, Big Data and deployments are processing massive data volumes from wearables, utilities and other machines...
SYS-CON Events announced today that the "First Containers & Microservices Conference" will take place June 9-11, 2015, at the Javits Center in New York City. The “Second Containers & Microservices Conference” will take place November 3-5, 2015, at Santa Clara Convention Center, Santa Clara, CA. Containers and microservices have become topics of intense interest throughout the cloud developer and enterprise IT communities.
Buzzword alert: Microservices and IoT at a DevOps conference? What could possibly go wrong? In this Power Panel at DevOps Summit, moderated by Jason Bloomberg, the leading expert on architecting agility for the enterprise and president of Intellyx, panelists will peel away the buzz and discuss the important architectural principles behind implementing IoT solutions for the enterprise. As remote IoT devices and sensors become increasingly intelligent, they become part of our distributed cloud environment, and we must architect and code accordingly. At the very least, you'll have no problem fil...
SYS-CON Events announced today that MetraTech, now part of Ericsson, has been named “Silver Sponsor” of SYS-CON's 16th International Cloud Expo®, which will take place on June 9–11, 2015, at the Javits Center in New York, NY. Ericsson is the driving force behind the Networked Society- a world leader in communications infrastructure, software and services. Some 40% of the world’s mobile traffic runs through networks Ericsson has supplied, serving more than 2.5 billion subscribers.
The 4th International Internet of @ThingsExpo, co-located with the 17th International Cloud Expo - to be held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA - announces that its Call for Papers is open. The Internet of Things (IoT) is the biggest idea since the creation of the Worldwide Web more than 20 years ago.
The 17th International Cloud Expo has announced that its Call for Papers is open. 17th International Cloud Expo, to be held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, brings together Cloud Computing, APM, APIs, Microservices, Security, Big Data, Internet of Things, DevOps and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding business opportunity. Submit your speaking proposal today!
Since 2008 and for the first time in history, more than half of humans live in urban areas, urging cities to become “smart.” Today, cities can leverage the wide availability of smartphones combined with new technologies such as Beacons or NFC to connect their urban furniture and environment to create citizen-first services that improve transportation, way-finding and information delivery. In her session at @ThingsExpo, Laetitia Gazel-Anthoine, CEO of Connecthings, will focus on successful use cases.
The explosion of connected devices / sensors is creating an ever-expanding set of new and valuable data. In parallel the emerging capability of Big Data technologies to store, access, analyze, and react to this data is producing changes in business models under the umbrella of the Internet of Things (IoT). In particular within the Insurance industry, IoT appears positioned to enable deep changes by altering relationships between insurers, distributors, and the insured. In his session at @ThingsExpo, Michael Sick, a Senior Manager and Big Data Architect within Ernst and Young's Financial Servi...
The recent trends like cloud computing, social, mobile and Internet of Things are forcing enterprises to modernize in order to compete in the competitive globalized markets. However, enterprises are approaching newer technologies with a more silo-ed way, gaining only sub optimal benefits. The Modern Enterprise model is presented as a newer way to think of enterprise IT, which takes a more holistic approach to embracing modern technologies.
17th Cloud Expo, taking place Nov 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy. Meanwhile, 94% of enterprises are using some form of XaaS – software, platform, and infrastructure as a service.