permaculture playing cards*
The moose likes Tomcat and the fly likes problem with tomcat embedded application Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Products » Tomcat
Bookmark "problem with tomcat embedded application" Watch "problem with tomcat embedded application" New topic
Author

problem with tomcat embedded application

Anna Ferrari
Greenhorn

Joined: Aug 18, 2006
Posts: 14
Hi,
I test a java class (source download from internet) within tomcat embedded (5.5.25). Inside Eclipse (3.2) my programm work fine. I make a jar file (with eclipse), but when I launch my application I have "Could not find main class".
(java version :1.6.0_03-b05)
Any idea?
Thanks.
[ November 24, 2007: Message edited by: Anna Ferrari ]
Wayan Saryada
Ranch Hand

Joined: Feb 05, 2004
Posts: 104

Can you elaborate more on your problem? Did you create a web application or just a Java application? Are you trying to execute a Java application in you jar file?


Website: Learn Java by Examples
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41137
    
  45
Does the jar file include a manifest file that points to the class containing the main method?


Ping & DNS - my free Android networking tools app
Anna Ferrari
Greenhorn

Joined: Aug 18, 2006
Posts: 14
Hi,
first off all, sorry for my bad english. I try to lay out my problem.
I want to know if it is possible to run a web application without formally install and launch tomcat.
My existing web application works inside Tomcat.
I downloaded from internet a tomcat embedded version. After that, I created an eclipse project using a java source code downloaded.
My code Embed55.java uses following import :


In the eclipse project :

1) I created a user library with inside all jar file contained in ...\apache-tomcat-5.5.25-embed\lib
2) I copied (inside the project) from ..\apache-tomcat-5.5.25-embed the following directories :

3) I copied my web application gestlav (directory from my tomcat) inside of webapps.

That's all.
I run Embed55.java (FROM ECLIPSE) and inside eclipse console tomcat starts :

25-nov-2007 14.26.45 org.apache.catalina.startup.Embedded start
INFO: Starting tomcat server
25-nov-2007 14.26.46 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.25
.....
.....

I open browser and write : http:\\localhost:8080\gestlav\
and my web application starts.

If I make a jar file (with eclipse) and put it in C:\Embed.jar
when I click twice jar file I have : Could not find main class

Jar file contains:

pippo
Embed55.class
webapps
conf
META-INF
MANIFEST.MF


This is META-INF/MANIFEST.MF

after Main-Class it is one blank line
Please, why?
Thanks for your help.
[ November 25, 2007: Message edited by: Anna Ferrari ]
Nicholas Jordan
Ranch Hand

Joined: Sep 17, 2006
Posts: 1282
Well, I'm gonna be brave and do what I can. Nobody critic me until more information from Anna Ferrari.

First, your english is pretty good - let's focus on the code and problems.

[Anna Ferrari:]   I test a java class (source download from internet) within tomcat embedded (5.5.25).

There are many sources on the internet, and what test class ?

[Anna Ferrari:]   Inside Eclipse (3.2) my programm work fine. I make a jar file (with eclipse), but when I launch my application I have "Could not find main class".

Eclipse understands a lot of things about java, and may not need a main class. A main class is a class with a main(String[] args) method, that's what a main class is - end of discussion. ( that's idiomatic and does not mean any mean meanings )

[Anna Ferrari:]   I want to know if it is possible to run a web application without formally install and launch tomcat.

I do it all the time, but some patience is really necessary.

[Anna Ferrari:]   Main line is :

Your main() method ... and where did Embed55(); come from, may we see the sources ?

java.util.LinkedList<Integer> list = new java.util.LinkedList<Integer>();
You have an extra code tag in that line, you can edit your own posts. Clumsy but necessary.

tomcat.startTomcat(); ... where did this come from ? { I am not begin critical, it just seems out of place in the scope of your question }

//---- THIS IS MY WEB APPLICATION

Applications ( in Tomcat ) are in some other files, called extensible markup language, they harrow me. I will let others tell you what those files are and where they are used. What is gestlav ? Why do you call Thread.sleep() ?

[Anna Ferrari:]   If I make a jar file (with eclipse) and put it in C:\Embed.jar when I click twice jar file I have : Could not find main class

eclipse may .... Tomcat and running apps ( applications ) sorta gets things mixed together that sounds to me like what the answer to your question is is that an application, a stand-alone application has a main method: which I don't think eclipse and Tomcat working together are going to be especially concerned about.

When you go outside of eclipse and Tomcat and start trying to run an application, lets just say you need to expect to do some reading and spend some time getting acclimatized to what is going on.

http:\\localhost:8080\gestlav\ is different from a stand-alone program. after Main-Class it is one blank line doesn't matter, a few blank lines are not going to be of excessive concern.

[Anna Ferrari:]   when I click twice jar file I have : Could not find main class

Better just start reading and read some more, then come back and post again. Servlets and writing programs have some differences, one-click is not going to launch an app until more work is done.
[ November 25, 2007: Message edited by: Nicholas Jordan ]

"The differential equations that describe dynamic interactions of power generators are similar to that of the gravitational interplay among celestial bodies, which is chaotic in nature."
Anna Ferrari
Greenhorn

Joined: Aug 18, 2006
Posts: 14
Hi,
thank you very much, for your attention.
I'm very confused, therefor I decide to move off with an other code.
I take this code from :
web page

I change a little the code, because for example I don't find Deployer class in side my tomcat embedded version.
Here is the code (I think it is similar to the old) :



My intention is to make run my web application in side a pen drive.
I dowloaded Server2Go.exe and I put it in the pen drive because my app requires mysql.
I put tomcat-embedded version in the pen drive.
Now my problem is to make "some thing" to start a tomcat version (in side the pen) for open (with the browser) my web application.
My intention is to put the pen drive in an other PC and to launch my web appl.
Is it possible? Or is it an other way to do some thing like this?
Thanks.
[ November 26, 2007: Message edited by: Anna Ferrari ]
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41137
    
  45
Since now you have a class with a main method, you can include a manifest file that points to that class in your jar file. Then you can start Tomcat by double-clicking that jar file.
Anna Ferrari
Greenhorn

Joined: Aug 18, 2006
Posts: 14
Hi,
unfortunately this dont't works. I make jar file from eclipse, manifest.mf is ok, but nothing, I have always : COULD NOT FIND MAIN CLASS.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60794
    
  65

Then perhaps your manifest.mf is not ok?


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Anna Ferrari
Greenhorn

Joined: Aug 18, 2006
Posts: 14
Hi,
probably you're right. I keep manifest like eclipse make it. But it isn't enought. Maybe I have to add a lot of tomcat jar files in the manifest class-path or launch the java class with a crazy mode. I don't like this solution. I thought this way more simple that what it really is.
I have to look for an other way. Probably I have to think something outside web application.
For now, thank you very much.
 
 
subject: problem with tomcat embedded application
 
Similar Threads
Deploying a web application to Tomcat 6 through Eclipse Ganymede is not copying the .class files
No suitable driver java.sql.SQLException: No suitable driver
Professional Tomcat 6.0
listen to events from a servlet in an embedded tomcat
Derby embedded server and Tomcat