Eclipse: Apache Tomcat doesn't update my project until I restarted Eclipse - eclipse

I have tested my a simple form.html. I change something on here, and right click on project, run on server. My server (Apache Tomcat) will run my project.
But, I don't know why, it rarely update my project. (mean form.html no change !!!) until I restart eclipse and run project again.
Maybe the strange thing is : no message box appear asked me: "Do you want to restart server" like before. But I have config in Eclipse that "always restarted server when required" to "always". But, after I change something like some space in form.html, I just see that Eclipse save and run project. (not stop and start server again). Maybe the problem here !!!
(before that, I have clicked that not restart server, and remember this action), but I don't know how to config again for this
Thanks :)

Open the "Server" view and doubleclick on your server. Check the server location and deploy path. Open the publish tab and make sure "automatically publish when resource changes" is selected. Static resources will be hot deployed and there's no need to restart the server.
You can always republish resources by clicking your servers name in the Server view and then clicking the icon to the very right (in the header), Ctrl+Alt+P.
The "restart server" function can be modified here: window > prefereces > server > launching.

Related

Tomcat 6 Eclipse config -- Server Locations locked for edit

I am trying to change the default location for my Tomcat server running out of Eclipse EE 1.4.1 so that it uses the original Tomcat installation (which works fine when run standalone out of the console) and not the one created by Eclipse in the workspace as per this thread. However, my Server Locations section on the Tomcat server configuration form is all grayed out (see red rectangle):
Why is that and how do I change it?
It says it all on the page you published :
Server must be published with no modules present to make changes.
Stop your server. Undeploy everything and then (the trick part) click on publish to be sure to have nothing deployed (ie no files copied to the deploy location, the click on publish with no module in your server will erase everything deployed).
Then you will be able to change the setting.
Before making any changes in Tomcat Server Location, you need to remove project(s) deployed on server.
To remove project:
expand tomcat server in "Servers" view
right click and select remove
Just stop your tomcat server first ;)

HTTP Status 404 - The requested resource (/) is not available

I integrated Tomcat 7 in Eclipse. When I start it using Eclipse, it shows that Tomcat is up and running, but when I go to http://localhost:8080 in my browser, it gives me following error:
HTTP Status 404 - /
type Status report
message /
description The requested resource (/) is not available.
Apache Tomcat/7.0.23
I tried changing the port in server.xml just in case if 8080 is used by another service, but it didn't work either. How can I solve it?
What are you expecting? The default Tomcat homepage? If so, you'll need to configure Eclipse to take control over from Tomcat.
Doubleclick the Tomcat server entry in the Servers tab, you'll get the server configuration. At the left column, under Server Locations, select Use Tomcat installation (note, when it is grayed out, read the section leading text! ;) ). This way Eclipse will take full control over Tomcat, this way you'll also be able to access the default Tomcat homepage with the Tomcat Manager when running from inside Eclipse. I only don't see how that's useful while developing using Eclipse.
The port number is not the problem. You would otherwise have gotten an exception in Tomcat's startup log and the browser would show a browser-specific "Connection timed out" error page (and thus not a Tomcat-specific error page which would impossibly be served when Tomcat was not up and running!)
Following steps helped me solve the issue.
In the eclipse right click on server and click on properties.
If Location is set workspace/metadata click on switch location and
so that it refers to /servers/tomcatv7server at localhost.server
Save and close
Next double click on server
Under server locations mostly it would be selected as
use workspace metadata Instead, select use tomcat installation
Save changes
Restart server and verify localhost:8080 works.
Copy the ROOT (Default) Web App into Eclipse.
Eclipse forgets to copy the default apps (ROOT, examples, etc.) when it creates a Tomcat folder inside the Eclipse workspace.
Go to C:\apache-tomcat-7.0.27\webapps, R-click on the ROOT folder and copy it.
Then go to your Eclipse workspace, go to the .metadata folder, and search for "wtpwebapps". You should find something like your-eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps (or .../tmp1/wtpwebapps if you already had another server registered in Eclipse).
Go to the wtpwebapps folder, right-click, and paste ROOT (say "yes" if asked if you want to merge/replace folders/files).
Then reload localhost:8080 to see the Tomcat welcome page.
I did what BalusC said but it was not enough for me, I had to clean the Tomcat workdirectory : ( Click right on right on Tomcat in the Servers Tab -> Clean Tomcat Work Directory )
Please check in your server specification again, if you have changed your port number to something else.
And change the port number in your link whatever new port number it is.
Also check whether your server is running properly before you try accessing your localhost.
If you are new in JSP/Tomcat don't modify tomcat's xml files.
I assume you have already deployed web application. But to be sure, try these steps:
- right click on your web application
- select Run As / Run on Server, choose your Tomcat 7
These steps will deploy and run in the browser your application. Another idea to check if your Tomcat works correctly is to find path where tomcat exists (in eclipse plugin), and copy some working WAR file to webapps (not to wtpwebapps), and then try to run the app.
If options under Server Locations are grayed out, note the message in the section title: "Server must be published with no modules present". To publish the server, right click the name of the server in the Server window and select "Publish".
Sometimes cleaning the server works. It worked for me many times.This is only applicable if the program worked earlier but suddenly it stops working.
Steps:
" Right click on Tomcat Server -> Clean. Then restart the server."
I had the same problem with my localhost project using Eclipse Luna, Maven and Tomcat - the Tomcat homepage would appear fine, however my project would get the 404 error.
After trying many suggested solutions (updating spring .jar file, changing properties of the Tomcat server, add/remove project, change JRE from 1.6 to 7 etc) which did not fix the issue, what worked for me was to just Refresh my project. It seems Eclipse does not automatically refresh the project after a (Maven) build. In Eclipse 3.3.1 there was a 'Refresh Automatically' option under Preferences > General > Workspace however that option doesn't look to be in Luna.
Maven clean-install on the project.
** Right-click the project and select 'Refresh'. **
Right-click the Eclipse Tomcat server and select 'Clean'.
Right-click > Publish and then start the Tomcat server.
In my case, I've had to click on my project, then go to File > Properties > *servlet name* and click Restart servlet.
For me, my Eclipse installation was hosed - I think because I'd installed struts. After trying a dozen remedies for this error, I re-installed Eclipse, made a new workspace and it was OK. Using Kepler-64-Windows, Tomcat 7, Windows 7.
This worked for me:
Project > Build Automatically (Make sure it's turned on)
Project > Clean ...
Right click Tomcat > Properties > General Tab > Switch Location (switch from workspace metadata to Server at localhost.server)
Restart Eclipse
Run Project As Server
Apache Tomcat/7.0.23 service is not loaded or enabled. Pls check the service status and other app which is using 8080 port currently. To check this use netstat command and observe whether another app is occupying the port 8080!

How do I get Eclipse Galileo to stop restarting an external Tomcat run configuration?

I don't even have any servers setup except as an External Tool Configuration > Program. I'm using the JPDA connector, and yet when I do certain things like have Eclipse auto generate a serialVersionUID it automatically restarts Tomcat. I can't find where this might be configured in the project properties or the window preferences. I don't want Eclipse to do anything with Tomcat unless I'm starting or stopping. Thanks!
Well, months after giving up, I was having a discussion with a co-worker about my Tomcat context, and finally realized what it was. I had reloadable = "true" in the context node, and it had nothing to do with Eclipse. In this scenario, all Eclipse does is communicate with Tomcat, and display console output. Tomcat was being notified in certain scenarios that files had changed, and it was restarting automatically. I set reloadable = "false", and this is no longer a problem.
Does the server show up in the Servers view?
If so, double-click the server in that view, expand the "Publishing" area, and select the "Never publish automatically" radio option. Save the server, and (re)start it.

Server configuration is missing in Eclipse

Im using Eclipse Galileo, and have configured it for Apache Tomcat . I have added Apache Tomcat 6.0 to Windows->Server->Runtime Environments, with the following settings:
Tomcat Installation Directory - C:\apache-tomcat-6.0.24\apache-tomcat-6.0.24
JRE - Workbench Default JRE (This points to C:\Program Files\Java\jre6)
Now, I create a Dynamic Web Project, and add a JSP file to it. But, when I run the project I get the following error:
The Tomcat server configuration at \Servers\Tomcat v6.0 Server at localhost-config is missing. Check the server for errors.
Any way to fix this?
Probably, you have some problems with your server's configuration.
Follow these steps to remove and create a new one, it might help you.
In Eclipse
1. Window -> Show view -> Servers (If you cannot see it, you might need to choose Others -> Server)
2. From Server view -> Delete the server which has problems.
3. Right click -> New -> Server : to create a new one
In my case, after new server was created, I get rid of this "localhost-config is missing"
I faced the same problem once. THe reason for this is that even though the server is available, the config files are missing. You can see the server at Windows -> Show view -> Servers. Their configuration files can be seen at Project Explorer -> Servers. For some reason this second mentioned config files were missing.
I simply deleted the existing server and created a new one with this the config files were also created and the problem was solved!
Similar solution is given at here by Emertana EM
java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
In Eclipse Neo
1. Window -> Show view -> Servers
2. Right click on server -> choose Properties
3. From General Tab -> Switch Location
As Yoni already mentioned, you probably deleted the project named "Servers" from your Project Explorer. If config files for the server still present on a file system, the quickest way to restore it will be Right Click in Project Explorer->Import->General->Existing Projects into Workspace, then select the root dir where Servers dir located, set checkbox near "Servers" and finally click Finish. If everything works as expected, you should see the 'Servers' project added to the Project Explorer view and your old config files will be there. Finally, save the tomcat configuration which you had open. You can startup your Tomcat server without errors now.
From project explorer ,just make sure that Servers is not closed
You need to define the server instance in the Servers view.
In the box at the right bottom, press the Servers tab and add the server there. You by the way don't necessarily need to add it through global IDE preferences. It will be automagically added when you define it in Servers view. The preference you've modified just defines default locations, not the whole server instance itself. If you for instance upgrade/move the server, you can change the physical location there.
Once defining the server in the Servers view, you need to add the newly created server instance to the project through its Server and Targeted runtime preference.
If you're not too attached to your current workspace you can create a new workspace, follow BalusC's steps for server creation, and recreate your project in the new workspace.
I got the same error after installing Eclipse Java EE IDE for Web Developers(Juno) but using the workspace of a much older Eclipse installation. When I created a new workspace I was able to get my Tomcat server running without this error.
Did you, by any chance, deleted stuff from your workspace, or moved it around?
When you create a server for the first time, either globally or through the project's "run on server" settings, Eclipse creates a project in the Servers view, as BalusC pointed out. Eclipse stores this server inside your workspace, in a project called Servers. The project needs to be open for tomcat to run.
(If you want, you can store the server settings elsewher. You can right click and open the server instance from the Servers view and configure various parameters and locations)
This happens when Eclipse shuts down incorrectly - delete the server and then re-create it again.
Remove the server from IDE and install again to it.
In my case, the server list was empty for Apache in "Run Configurations" when I opened
Run > Run Configurations
I fixed this by creating a server in the Servers Panel as in other answers:
Window -> Show view -> Servers
Right click -> New -> Server : to create a new one
this worked for me
In the Server's tab in Eclipse, Stop the Tomcat server
Right-click the server and select "Clean..."
Right-click the server again and select "Clean Tomcat Work Directory..."
In the Eclipse, select the top-level menu option, Project > Clean ...
Be sure your project is selected and click Ok
Restart Eclipse
4th Step is most important.
Go to Servers remove the existing server by clicking delete.
Click the blue link to launch the server.
Set a new runtime environment.
Close the Eclipse and launch it again.
Boom it works!

Stop Eclipse restarting my web app on file save

I'm creating a JSF/Facelets web app in Eclipse. I've configured my project to use a Tomcat (6.0) server that is started/stopped by Eclipse.
Whenever I save a file (eg .xhtml) Eclipse restarts the app, trashing my HTTP session. This is annoying, because I'm frequently updating my .xhtml files, and the app doesn't need restarting to detect the changes.
Is there a way to stop Eclipse restarting the app? Specifically, can I configure Eclipse to only restart the app when I save files of a certain type?
In the server View, double click on your Tomcat instance.
This will open the properties of your Tomcat server.
As I am not sure of which parameter will help you to solve your problem, check the following options in the latter view:
Automatic Publishing, option "Override default settings" selected, 1 second for the publishing interval.
In server options, uncheck options "Server modules without publishing" and "publish module contexts to separate XML files".
In the modules tab, for each modules deployed, check that Auto Reload is enabled.
Hope this will help you.
I have always used this and it works fine for me. The context is reloaded only when you change classes or the web descriptor.
In your project structure where you keep .xhtml files which makes eclipse reload the context on changing?
This can happen if you have a builder in Eclipse set to deploy on save. Right click on your project -> properties -> builders
Turn off "Build Automatically"