Am 10.05.2017 um 00:40 schrieb Mark Thomas:
On 09/05/17 15:25, Michael Heinen wrote:
Hi all,
I am currently mirgating an application from Tomcat 7.0.73 to 8.0.43.
On development platforms we use an embedded tomcat.
On of the jars on the classpath contains a web-fragment.xml in it's
META-INF folder.
This jar file is NOT located within the webApp but simply on the classpath.
With Tomcat 7.0.73 the web-fragment is processed and the defined filter
is instantiated.
With Tomcat 8.0.43 the web-fragment is not processed at all.
Some lines of code:
final StandardContext ctx = ...
ctx.setXmlBlockExternal(false);
final StandardJarScanner jarScanner = new StandardJarScanner();
jarScanner.setScanAllDirectories(true);
jarScanner.setScanAllFiles(true);
jarScanner.setScanBootstrapClassPath(true);
jarScanner.setScanClassPath(true);
jarScanner.setScanManifest(false);
ctx.setJarScanner(jarScanner);
Should this work with Tomcat 8 or is my expectation wrong?
It should work. I'd recommend putting a break-point in
StandardJarScanner and stepping through the Tomcat code to see what is
going wrong.
Mark
Thanks Mark
Here are the results from debugging:
1) Tomcat 8.0.43:
The boolean parameter "isWebapp" is false in this case and therefore the
web-fragment is not processed at all.
See
org.apache.tomcat.util.descriptor.web.FragmentJarScannerCallback.scan(Jar,
String, boolean)
// Only web application JARs are checked for web-fragment.xml
// files.
// web-fragment.xml files don't need to be parsed if they are never
// going to be used.
if (isWebapp && parseRequired) {
is = jar.getInputStream(FRAGMENT_LOCATION);
}
2) Tomcat 7.0.73:
There is no check for webApps. The member "parseRequired" is true and
therefore the fragment is loaded.
See
org.apache.catalina.startup.ContextConfig.FragmentJarScannerCallback.scan(JarURLConnection)
if (parseRequired || context.getXmlValidation()) {
is = jar.getInputStream(FRAGMENT_LOCATION);
}
Should I open a bug?
Regards,
Michael
Note that the web-fragement is processed when I move the jar to the
web-inf\lib folder.
Regards,
Michael
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org