views:

10127

answers:

4

(Eclipse 3.4, Ganymede)

I have an existing Dynamic Web Application project in Eclipse. When I created the project, I specified 'Default configuration for Apache Tomcat v6' under the 'Configuration' drop down.

It's a month or 2 down the line, and I would now like to change the configuration to Tomcat 'v5.5'. (This will be the version of Tomcat on the production server.)

I have tried the following steps (without success):

  • I selected Targeted Runtimes under the Project Properties
    The Tomcat v5.5 option was disabled and The UI displayed this message:
    If the runtime you want to select is not displayed or is disabled you may need to uninstall one or more of the currently installed project facets.
  • I then clicked on the Uninstall Facets... link.
    Under the Runtimes tab, only Tomcat 6 displayed.
    For Dynamic Web Module, I selected version 2.4 in place of 2.5.
    Under the Runtimes tab, Tomcat 5.5 now displayed.
    However, the UI now displayed this message:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    The Finish button was disabled - so I reached a dead-end.

I CAN successfully create a NEW Project with a Tomcat v5.5 configuration. For some reason, though, it will not let me downgrade' an existing Project.

As a work-around, I created a new Project and copied the source files from the old Project. Nonetheless, the work-around was fairly painful and somewhat clumsy.

Can anyone explain how I can 'downgrade' the Project configuration from 'Tomcat 6' to 'Tomcat 5'? Or perhaps shed some light on why this happened?

Thanks
Pete

+2  A: 

This is kind of hacking eclipse and you can get into trouble doing this but this should work:

Open the navigator view and find that there is a .settings folder under your project expand it and then open the file: org.eclipse.wst.common.project.facet.core.xml you should see a line that says: <installed facet="jst.web" version="2.5"/> Change that to 2.4 and save.

Just make sure that your project isn't using anything specific for 2.5 and you should be good.

William
Thanks. Actually I tried your hack before I posted the question - with partial success. When I attempted to run the Project from within Eclipse (under Tomcat 5.5) I got a slew of Exceptions. So I fired up Eclipse to copy down the Exception stack... and it worked! Any idea why the hack is required?
A: 

Sorry it seems I can't post a comment without enough Rep so...

I think it's too difficult for eclipse to degrade safely to a lower standard because it can't really know if you've used something from the newer web standard. So if it just allows you do to that it could cause your program to fail on an older version.

You can always be backward compatible but not forwards compatible.

William
Mmm - a bit strange (not to mention annoying). Anyway, many thanks for the answer.
You can't do it the other way either 2.4 -> 2.5 :'(
scottyab
+1  A: 

This may be old but I tried and found the following in eclipse Galilio.

Open the navigator view and find that there is a .settings folder under your project expand it and then open the file: org.eclipse.wst.common.project.facet.core.Delete the content of this file and right click on the project and click on properties. Go to Project Facats in the popup window there you can click on runtime tabs and convert your project to the new facet you want.

Venkat
A: 

You can try to uncheck the facet, apply, change the value of the facet and check. It works for me in Eclipse Helios SR1.

So the main difference is that I do it with 'Dynamic Web Module'.

I hope it works for you too.

Stickbreaker