Step by Step guide to configure Eclipse and Apache Tomcat

This post has been moved to http://srinichekuri.com/2016/01/12/step-by-step-guide-to-configure-eclipse-and-apache-tomcat/

*********************************************************************

Eclipse is a very commonly used IDE by developers across the globe. Eclipse with Apache Tomcat server is a great combination for beginners and for experienced web developers.

This post will provide step-by-step guidance to set up Eclipse with Tomcat Server.

Note: Below screen shots are for windows 64-bit version. Please act accordingly for 32-bit versions.

Step-1: Download Java.

Click Here to download Java 7 SDK.

Java7_download

You will see that there are two folder created in your C:\Program files\Java. (In my case I already had Java 6 installed too).

Java7_download_2

Step-2: Download Apache Tomcat Server

Click Here to download Apache Tomcat Server 7.

Apache_Tomcat7_download

Once dowloaded, extract the server to D:\Software. You will see following structure after the extract is complete.

Apache_Tomcat7_download_1

Note: you can also choose to install from 32-bit/64-bit Windows Service Installer if you want to install it like a service.

Step-3: Configure Environment Variables

Configure following environment variables and restart your pc when done.

  • JAVA_HOME: “C:\Program Files\Java\jdk1.7.0_79”java_home_environment_variable
  • JRE_HOME: “C:\Program Files\Java\jre7”jre_home_environment_variable
  • CATALINA_HOME: “D:\Software\apache-tomcat-7.0.67”catalina_home_environment_variable

 

Step-4: Download Eclipse

Click Here to download Eclipse. For this guide, I am downloading Eclipse Mars. But you can download anything that is compatible with Java version you downloaded.

Eclipse_Mars_Download

Once downloaded extract contents to D:\Software.  You will see following structure after download is complete.

Eclipse_Mars_Download_1

 

Step 5: Setup Server Configuration in Eclipse

Open Eclipse and Open Server View (Window -> Show View -> Servers)

Right Click New -> Server

Eclipse_server_setup

Select Tomcat 7. You might have to Add Server runtime environment.

Eclipse_server_setup_1

(Dialog when clicked on ‘Add…’ in above screen shot)

Eclipse_server_setup_2

Click on Finish when Done.

Double click on Server to open deployment descriptor and make sure that you have default ports.

Eclipse_server_setup_3

Now start the server by clicking on start button and you will see that server has started successfully.

Eclipse_server_setup_4

Eclipse_server_setup_5

Hope this Set up process was helpful. Please use the comment section if you face any issues setting up and I will help  you as soon as I can.

 

 

Performance Tuning

This post was moved to http://srinichekuri.com/2009/11/04/performance-tuning/

**********************************************************************

Performance tuning is one of the important aspects that needs to be considered while designing the web application. Although performance can be improved in many different ways and with different permutations, the decision for the best combination can only be decided according to the nature of the application,performance requirement and the hardware infrastructure. In this article i am going to discuss few ways to improve performance and different use cases and the ways the combinations can be used.

Performance Tuning techniques:
Performance tuning can be done be achieved by taking measures while coding and by proper design.

  • Minimum Logging
  • Avoiding fancy coding
  • Caching
  • Minimum Synchronizing
  • Database connections

Minimum Logging: Logging is eyes of a developer on the application, but if you are doing ‘out of bounds logging’ then it will effect the response time of the application. Many might argue that there are frameworks which work efficiently which i will not debate it, but irrespective its still an Input/Output which is not needed. This will make a difference in an application where response time is very very important.

Avoiding fancy coding: Using all the latest api while coding doesn’t always need to work in your favour. You will have to choose the api we are using according to the requirement. Some apis like Reflection and regular expressions should be used only if the requirement asks for it because internally it takes more time to deliver the goods when the same result can be expected from code using simple api.

Caching: Dynamic pages are normally created using server side programming languages. There are different sources of data that is used in dynamic pages, caching can be used for the all the sources that doesn’t change much. The best examples are xml files, data from database etc. I wouldn’t recommend using this technique if the data to be displayed changes very often. For example if the dynamic pages are generated from xml files according to the request one gets in web server, these xml files can be cached so that when the request comes in, code can get the xml from cache instead from disk from saving the time for IO. I wouldn’t recommend doing this if the dynamic data to be displayed for stocks trading application.

Minimum Synchronizing: Software developers should make sure that code should be synchornized only when it is required. Synchoronizing the code would restrict multiple threads to access the part of the code simultaneously thus making a queue of all the requests inturn following a FIFO (First In First Out) policy to attend the request.

Database connections: A database call would involve making a database connection, execute the procedure/query, get the result and close the connection which in turn makes the database connection one of the costly affair in terms of performance. With this in mind i would recommend designing the application up front with minimum number of database connections. One should always think of scenarios where data need not be fed into database in real time which in turn can be done through batch feed.

Google: Information is power

This posted was moved http://srinichekuri.com/2008/11/27/google-information-is-power/

**********************************************************************

Google Maps, G-Mail, GTalk, Google Desktop, Google Chrome, Google Engine…and the list goes on. Google is providing free services to millions of people all over the world. What does google gain from this? What is it upto?

Providing free services is part of a bigger plan which google is planning to cash on, we are looking at a whole different world which google is dreaming to create on wire. Google has money which it is spending on services which is targeting to meet the basic needs of life in cyber world, and in the process piling up information which can be sold to businesses to plan their campaigns and plan their business stratergies accordingly. For Example, google with aid of search words and google analytics is able to keep track of number of people interested in buying new cars which can be boiled to a state and even county level or even further, this kind of information can be sold to all the auto companies and dealers so that they can formulate the money to be spent in different states and countys to tap the prospective customers.

Did you ever wondered how “google suggest” is working in the back end?? how does google know what we might be looking for?? Better start thinking now. Google has weaved its business model around the browsing habits of people, the more you use their services (which we already are doing), the more they are into business.

I don’t think the future is about laptops, it is about having access to everything with a instrument which you are already carrying. Google online documents is trying to make a mark in this aspect, if you need access to a document all you need now is Cellphone with a data plan and you can view this document on a monitor or a projector by connecting cellphone to it. I wouldn’t be surprised if google will soon come up with a online Operating System which will give you access to all the applications which are provided by MSOffice and even more.

If you think about it, google is trying to capture the future market of cellphone applications. It has already laid a base by promoting Android in cellphones, it has google maps which can be used in gps tracking. Soon it will start releasing apps for supporting gtalk, online documents, orkut and many more on this operating system. All the cellphones which run on Android will act as mini computers that meet the basic purpose of a common man.

This will be our typical day in future. Our morning will start with a alarm going off on a g-phone which is running Android. After your breakfast you will driving to your office, btw gps in your car is using g-maps. Once you are in office you will connect your cellphone to monitor and authenticate yourself to get into your workspace in g-OS. Plan your day by checking your schedule for the day on g-calender. You have a presentation to be given to your counter part in Japan, send the link to the online document (which is a g-word doc) through g-mail. Once you are done sending start the conference by first logging into g-talk and invoking the voice chat which will port itself to your cellphone, in this way you will be able to talk to everyone. Hmmm there seems to be a problem, people on the otherside don’t understand english, just invoke g-translate to solve your problem. After a long day you want to watch a nice movie after you get home, order that using g-checkout. Get home and watch the movie on g-videos. End the day by updating your blog that is hosted on blogger.com and do some social networking on orkut. After a tiring day you deserve a good night sleep while google is busy building its web around common man needs.

Java

This post was moved to http://srinichekuri.com/2008/09/30/12/

**********************************************************************

what is Java?
Java is a programming language expressly designed for use in the distributed environment of the Internet adn enforces object-oriented programming model.

what are the features of Java?
These are the fearures of Java

  • Simple
  • Architecture neutral
  • Object oriented
  • Portable
  • Distributed
  • High performance
  • Multithreaded
  • Robust
  • Dynamic
  • Secure