|
jeckels responded: |
2013-07-31 13:12 |
Hello,
Can you send whatever output you're getting the IntelliJ debugger console? It may contain error messages that indicate why the server isn't deploying to the webapp successfully.
Thanks,
Josh |
|
bront responded: |
2013-07-31 15:04 |
Josh,
Sorry... should have thought of sending the messages with the first post.
The path to the source is: /Users/bront/IdeaProjects/labkey
Thanks for your help.
bront
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52046,suspend=y,server=n -Dcatalina.base=./ -Dcatalina.home=./ -Djava.io.tmpdir=./temp -Ddevmode=true -ea -Dsun.io.useCanonCaches=false -Xmx1G -XX:MaxPermSize=512M -classpath /Library/Tomcat/bin/bootstrap.jar:/Library/Tomcat/bin/tomcat-juli.jar -javaagent:/Users/bront/Library/Caches/IntelliJIdea12/groovyHotSwap/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:52046', transport: 'socket'
Jul 31, 2013 6:00:19 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/bront/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
Jul 31, 2013 6:00:19 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jul 31, 2013 6:00:19 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 536 ms
Jul 31, 2013 6:00:19 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jul 31, 2013 6:00:19 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.37
Jul 31, 2013 6:00:19 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor host-manager.xml
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/host-manager is unusable.
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/manager is unusable.
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/docs is unusable.
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Jul 31, 2013 6:00:20 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Jul 31, 2013 6:00:20 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/examples is unusable.
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Jul 31, 2013 6:00:20 PM org.apache.jasper.EmbeddedServletOptions <init>
SEVERE: The scratchDir you specified: /usr/local/apache-tomcat-6.0.37/work/Catalina/localhost/_ is unusable.
Jul 31, 2013 6:00:20 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jul 31, 2013 6:00:20 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jul 31, 2013 6:00:20 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/14 config=null
Jul 31, 2013 6:00:20 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 644 ms |
|
bront responded: |
2013-08-01 14:25 |
Josh,
I got LabKey to compile and run today on my Windows VM... but I am still running into an issue on the Mac.
I am getting the following error in the console:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:61906,suspend=y,server=n -Dcatalina.base=/Tomcat/Library -Dcatalina.home=/Tomcat/Library -Djava.io.tmpdir=/Tomcat/Library/temp -Ddevmode=true -ea -Dsun.io.useCanonCaches=false -Xmx1G -XX:MaxPermSize=512M -classpath /Tomcat/Library/bin/bootstrap.jar;/Tomcat/Library/bin/tomcat-juli.jar -javaagent:/Users/bront/Library/Caches/IntelliJIdea12/groovyHotSwap/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:61906', transport: 'socket'
Error: Could not find or load main class org.apache.catalina.startup.Bootstrap
Disconnected from the target VM, address: '127.0.0.1:61906', transport: 'socket'
Thanks again for your help.
bront |
|
jeckels responded: |
2013-08-05 11:20 |
Hi Bront,
From your log file, it looks like it isn't even trying to deploy the LabKey webapp. This is controlled with the presence of a labkey.xml in your TOMCAT/conf/Catalina/localhost directory. Do you have that directory? Does it have a labkey.xml file? It should be put there by the Ant build.
The missing class from your other machine should be coming from TOMCAT/lib/catalina.jar. It looks like your classpath may not be configured correctly for that particular install. You can probably edit the debug configuration to add it to the -classpath argument and you will hopefully get further.
Thanks,
Josh |
|
Leo Dashevskiy responded: |
2013-08-23 18:53 |
I get this same error, what am I doing wrong?
/usr/lib/jvm/java-7-oracle/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:37362,suspend=y,server=n -ea -Xmx1G -XX:MaxPermSize=512M -Dsun.io.useCanonCaches=false -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/lib/jvm/java-7-oracle/lib/tools.jar;/usr/local/tomcat/bin/bootstrap.jar;/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar;./bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/ -Dcatalina.home=/usr/local/tomcat/ -Djava.io.tmpdir=/usr/local/tomcat/temp -Ddevmode=true -javaagent:/home/ldashevs/Labkey/idea-IU-117.117/plugins/Groovy/lib/agent/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:37362', transport: 'socket'
Error: Could not find or load main class org.apache.catalina.startup.Bootstrap
Disconnected from the target VM, address: '127.0.0.1:37362', transport: 'socket'
Process finished with exit code 1 |
|
jeckels responded: |
2013-08-26 15:22 |
Hi Leo,
That class, org.apache.catalina.startup.Bootstrap, should be in <TOMCAT>/bin/bootstrap.jar. It looks like that's on the -classpath that's being used, but can you verify that it's actually present in /usr/local/tomcat/bin?
If so, try editing your debug configuration so that the -classpath argument has the paths separated by : instead of ;. That is:
-classpath /usr/lib/jvm/java-7-oracle/lib/tools.jar:/usr/local/tomcat/bin/bootstrap.jar:/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar:./bin/tomcat-juli.jar
Thanks,
Josh |
|
Leo Dashevskiy responded: |
2013-08-26 15:38 |
Oh, wow, thanks Josh! That got things rolling a bit, indeed, changing ';' to a ':' helped (I verified before that the bootstrap.jar is in the right place and does contain the needed class) -- so this is again a stupid Unix-vs.-Windows deal? (';' being the Windows separator)
Now I get the following error:
java.lang.NoClassDefFoundError: org/apache/tomcat/util/log/SystemLogHandler
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
at java.lang.Class.getConstructor0(Class.java:2723)
at java.lang.Class.newInstance0(Class.java:345)
at java.lang.Class.newInstance(Class.java:327)
at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:219)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:391)
Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.log.SystemLogHandler
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 7 more |
|
jeckels responded: |
2013-08-26 15:50 |
Hi Leo,
Yes, this is an OS-specific issue. In many cases Java hides these kinds of differences, but obviously not in this case.
The org.apache.tomcat.util.log.SystemLogHandler class should be in <TOMCAT>/lib/tomcat-coyote.jar. Can you check that file as well? In most cases, it should be picked up automatically based on the "-Dcatalina.home=/usr/local/tomcat/" argument to the JVM.
Thanks,
Josh |
|
Leo Dashevskiy responded: |
2013-08-26 18:11 |
Hm, well, I added that file to the classpath (and that class in present in that file) and things moved further, but still an error, I get a feeling, something is not set right 'globally'... I did not have such issues, when setting IntelliJ up the first time I went through this...
Once again, here is the Configuration for the 'Labkey Dev' Run:
Main class: org.apache.catalina.startup.Bootstrap
VM options:
-ea
-Xmx1G
-XX:MaxPermSize=512M
-Dsun.io.useCanonCaches=false
-Djava.endorsed.dirs="/usr/local/tomcat/common/endorsed"
-classpath
"/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/lib/catalina.jar:/usr/local/tomcat/lib/tomcat-coyote.jar:/usr/lib/jvm/java-7-oracle/lib/tools.jar:/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar:./bin/tomcat-juli.jar"
-Dcatalina.base="/usr/local/tomcat/"
-Dcatalina.home="/usr/local/tomcat/"
-Djava.io.tmpdir="/usr/local/tomcat/temp"
-Ddevmode=true
Program arguments: start
Working directory: /usr/local/tomcat
Environment variables: <blank>
Use classpath of module: LabKey
unchecked: Use alternative JRE
unchecked: Enable capturing from snapshots
Before launch
checked: Make
unchecked: 4 other checkboxes
Anything else I'm missing?
Error:
/usr/lib/jvm/java-7-oracle/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:41194,suspend=y,server=n -ea -Xmx1G -XX:MaxPermSize=512M -Dsun.io.useCanonCaches=false -Djava.endorsed.dirs=/usr/local/tomcat/common/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/lib/catalina.jar:/usr/local/tomcat/lib/tomcat-coyote.jar:/usr/lib/jvm/java-7-oracle/lib/tools.jar:/home/ldashevs/Labkey/idea-IU-117.117/lib/idea_rt.jar:./bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/ -Dcatalina.home=/usr/local/tomcat/ -Djava.io.tmpdir=/usr/local/tomcat/temp -Ddevmode=true -javaagent:/home/ldashevs/Labkey/idea-IU-117.117/plugins/Groovy/lib/agent/gragent.jar -Dfile.encoding=UTF-8 org.apache.catalina.startup.Bootstrap start
Connected to the target VM, address: '127.0.0.1:41194', transport: 'socket'
Aug 26, 2013 6:09:13 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/ldashevs/Labkey/idea-IU-117.117/bin:/home/ldashevs/Programs/j3d/lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Aug 26, 2013 6:09:13 PM org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw error
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.privateGetPublicMethods(Class.java:2571)
at java.lang.Class.getMethods(Class.java:1429)
at org.apache.tomcat.util.IntrospectionUtils.findMethods(IntrospectionUtils.java:841)
at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:271)
at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:262)
at org.apache.catalina.startup.SetAllPropertiesRule.begin(SetAllPropertiesRule.java:66)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1303)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 41 more
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.privateGetPublicMethods(Class.java:2571)
at java.lang.Class.getMethods(Class.java:1429)
at org.apache.tomcat.util.IntrospectionUtils.findMethods(IntrospectionUtils.java:841)
at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:271)
at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:262)
at org.apache.catalina.startup.SetAllPropertiesRule.begin(SetAllPropertiesRule.java:66)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1303)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
... 6 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 41 more
Disconnected from the target VM, address: '127.0.0.1:41194', transport: 'socket'
Process finished with exit code 0 |
|
jeckels responded: |
2013-08-27 09:22 |
Hi Leo,
You shouldn't need to manually add tomcat-coyote.jar to your classpath. As you suggest, it seems like there's something systematic problem that's preventing the various JAR files in /usr/local/tomcat/lib from being automatically added to your classpath.
My debug configuration has only two JARs - bootstrap.jar and idea_rt.jar. I'm not confident that it would fix the problem, but you could try removing the others from yours. It may be confusing the VM about what classloader it should be using to load the other JARs in ./lib.
Thanks,
Josh |
|
Leo Dashevskiy responded: |
2013-08-27 12:51 |
All right, great insight, Josh! I followed your advice and things finally worked out for me!
I did reinsert tools.jar per https://www.labkey.org/wiki/home/Documentation/page.view?name=build&_docid=wiki%3Aaa644db4-12e8-102a-a590-d104f9cdb538 - though not sure of its use.
I have no idea, where my semi-colons came from (the docs link above does have the proper colons), probably from Bront above using Windows. Not knowing that they are the issue, I followed the possible lead mentioned above and added catalina.jar to the classpath, which messed things up further...
Josh, which utility do you use to search these *.jar files for a particular class name? |
|
jeckels responded: |
2013-08-27 13:16 |
Hi Leo,
Great, glad it's working for you now!
My usual approach is to just crack open the individual .jar files (which are really just .zip files as you may already know) and check for the class file. I tend to use WinZip, but any tool that can operate on .zip files should work. I have a pretty good idea of how Tomcat divides up its .jar files, so it's quick as a search process.
Thanks,
Josh |
|
Matthew Bellew responded: |
2013-08-27 16:02 |
Also "jar tf foo.jar" lists all the files in the jar file. On mac/linux this works great
jar tf foo.jar | grep ClassOfInterest
works great |
|
Leo Dashevskiy responded: |
2013-08-28 10:58 |
Yeah, great idea Matt, thanks! |
|
|
|