Reputation: 6958
In Eclipse you can configure numerous servers to run inside the IDE, including Tomcat. Depending on your Tomcat configuration, at some point in the life cycle of a webapp your JSP files will get compiled into servlets. These new servlet .class files are stored in the %TOMCAT_HOME%/work
directory along with the .java intermediate file created from the JSP. This .java file is very helpful when your JSPs throw exceptions and cite a line number corresponding to the .java and not the .jsp
Update: On my environment (Windows), it is located here:
C:/Documents and Settings/%USER%/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work
Perhaps to answer more completely somebody could post the location for *nix environments.
Upvotes: 34
Views: 63059
Reputation: 4311
If you're using the Tomcat Maven Plugin in Eclipse, then your Tomcat related files would be in <project folder>/target/tomcat
instead, including the tomcat work folder at <project folder>/target/tomcat/work
, and you can descend from there to find your jsp .java files, etc.
(I know this may not apply to everyone, but since Tomcat Maven Plugin is a popular way to develop with tomcat and using maven to manage dependencies and help with the build process, I hope this info may be helpful for some people).
Upvotes: 0
Reputation: 537
On Windows, the easiest way to go to your Eclipse's Tomcat deployment location is to just right-click on the Tomcat instance in the Servers view and click "Browse Deployment Location..."
You should see Eclipse neatly opening a Windows explorer taking you to the exact location. In my case it takes me to:
C:\eclipse4.3.2-jee-kepler-SR2-win32\workspaces\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps
From there, you can easily browse to the "work" directory as shown below.
If you follow this, you never have to remember the location!
On Amazon EC2 Linux (this has nothing to do with Eclipse however), the Tomcat work directory is at /var/cache/tomcat7/work
[ec2-user@ip-172-31-xx-xx ~]$ uname -a
Linux ip-172-31-xx-xx 4.1.10-17.31.amzn1.x86_64 #1 SMP Sat Oct 24 01:31:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@ip-172-31-xx-xx] /usr/share/tomcat7 $ ls -l
total 4
drwxr-xr-x 2 root root 4096 Jan 5 15:18 bin
lrwxrwxrwx 1 root tomcat 12 Jan 5 15:18 conf -> /etc/tomcat7
lrwxrwxrwx 1 root tomcat 23 Jan 5 15:18 lib -> /usr/share/java/tomcat7
lrwxrwxrwx 1 root tomcat 16 Jan 5 15:18 logs -> /var/log/tomcat7
lrwxrwxrwx 1 root tomcat 23 Jan 5 15:18 temp -> /var/cache/tomcat7/temp
lrwxrwxrwx 1 root tomcat 24 Jan 5 15:18 webapps -> /var/lib/tomcat7/webapps
lrwxrwxrwx 1 root tomcat 23 Jan 5 15:18 work -> /var/cache/tomcat7/work
[root@ip-172-31-xx-xx] /var/cache/tomcat7/work/Catalina/localhost/init/org/apache/jsp $ ls -la
total 180
drwxr-xr-x 2 tomcat tomcat 4096 Jan 6 06:37 .
drwxr-xr-x 3 tomcat tomcat 4096 Jan 6 06:37 ..
-rw-r--r-- 1 tomcat tomcat 54172 Aug 17 2012 index_jsp.class
-rw-r--r-- 1 tomcat tomcat 2106 Jan 6 06:37 index_jsp$FileComp.class
-rw-r--r-- 1 tomcat tomcat 1034 Jan 6 06:37 index_jsp$FileInfo.class
-rw-r--r-- 1 tomcat tomcat 6460 Jan 6 06:37 index_jsp$HttpMultiPartParser.class
-rw-r--r-- 1 tomcat tomcat 89445 Aug 17 2012 index_jsp.java
-rw-r--r-- 1 tomcat tomcat 2210 Jan 6 06:37 index_jsp$UplInfo.class
-rw-r--r-- 1 tomcat tomcat 1208 Jan 6 06:37 index_jsp$UploadMonitor.class
-rw-r--r-- 1 tomcat tomcat 1184 Jan 6 06:37 index_jsp$Writer2Stream.class
Upvotes: 3
Reputation: 12453
You will find it in
projectworkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
This is the default place where Eclipse 3.4 publishes the project. However, this can be changed by changing the settings in your 'Server' view.
Upvotes: 53
Reputation: 75376
The easiest way is most likely to ask a compiled JSP page about the source of the byte code.
From http://www.exampledepot.com/egs/java.lang/ClassOrigin.html:
// Get the location of this class
Class cls = this.getClass();
ProtectionDomain pDomain = cls.getProtectionDomain();
CodeSource cSource = pDomain.getCodeSource();
URL loc = cSource.getLocation(); // file:/c:/almanac14/examples/
Hopefully this helps. What is it you want to do?
Upvotes: 15
Reputation: 5180
Go to "Servers" window -> double click on your tomcat instance -> clik "Open launch configuration" -> go to "Arguments" tab.
Look for variable definition like this:
-Dcatalina.base="/Users/dirtyaffairs/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0"
Upvotes: 22
Reputation: 32893
You can change it by setting scratchDir parameter in web.xml configuration of your server (in Servers project, not in your application web.xml!).
Upvotes: 1