dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.5</version> <scope>runtime</scope> <!-- can't find out which JAR needs it -->
TomEE comes with this one. So you should be able to use scope "provided", or omit it. On Mon, Jul 24, 2023, 2:58 PM Milan Durovic <milan...@gmail.com> wrote: > I suspected that myself and that’s why I wrote a small script that checked > ALL the JAR files, both those pulled in for the web app, as well as those > in the Tomee installation directory, for > jakarta.faces.context.ExternalContext class definition. The result was, as > I mentioned in the original post, that I could find only one JAR, > myfaces-api-3.0.2.jar, as expected, to have that definition. > > The full list of dependencies in my POM.XML file is: > > <dependencies> > <dependency> > <groupId>jakarta.servlet</groupId> > <artifactId>jakarta.servlet-api</artifactId> > <version>5.0.0</version> > <scope>provided</scope> <!-- comes with Tomcat --> > </dependency> > <dependency> > <groupId>org.apache.tomee</groupId> > <artifactId>jakartaee-api</artifactId> > <version>9.1.1</version> > <scope>provided</scope> <!-- comes with Tomee --> > </dependency> > <dependency> > <groupId>jakarta.inject</groupId> > <artifactId>jakarta.inject-api</artifactId> > <version>2.0.1</version> > <scope>provided</scope> <!-- comes with Tomee --> > </dependency> > <dependency> > <groupId>org.apache.tomcat</groupId> > <artifactId>tomcat-coyote</artifactId> > <version>10.0.27</version> > <scope>provided</scope> <!-- comes with Tomee --> > </dependency> > <dependency> > <groupId>org.apache.myfaces.core</groupId> > <artifactId>myfaces-api</artifactId> > <version>3.0.2</version> > <scope>provided</scope> > </dependency> > <dependency> > <groupId>org.hibernate.orm</groupId> > <artifactId>hibernate-core</artifactId> > <version>6.1.7.Final</version> > </dependency> > <dependency> > <groupId>org.hibernate.orm</groupId> > <artifactId>hibernate-c3p0</artifactId> > <version>6.1.7.Final</version> > </dependency> > <dependency> > <!-- this dependency is required for ANTLR plugin to work; it > provides runtime JARs > for generated parsers --> > <groupId>antlr</groupId> > <artifactId>antlr</artifactId> > <version>2.7.7</version> > </dependency> > <dependency> > <groupId>javax.mail</groupId> > <artifactId>mail</artifactId> > <version>1.4.7</version> > </dependency> > <dependency> > <groupId>org.apache.directory.studio</groupId> > <artifactId>org.apache.logging.log4j</artifactId> > <version>1.2.17</version> > </dependency> > <dependency> > <groupId>org.postgresql</groupId> > <artifactId>postgresql</artifactId> > <version>42.2.22</version> > </dependency> > <dependency> > <groupId>commons-net</groupId> > <artifactId>commons-net</artifactId> > <version>3.3</version> > </dependency> > <dependency> > <groupId>org.mnode.ical4j</groupId> > <artifactId>ical4j</artifactId> > <version>1.0.4</version> > </dependency> > <dependency> > <groupId>commons-codec</groupId> > <artifactId>commons-codec</artifactId> > <version>1.15</version> > <scope>provided</scope> > </dependency> > <dependency> > <groupId>commons-fileupload</groupId> > <artifactId>commons-fileupload</artifactId> > <version>1.5</version> > <scope>runtime</scope> <!-- can't find out which JAR needs it --> > </dependency> > <dependency> > <groupId>org.ostermiller</groupId> > <artifactId>utils</artifactId> > <version>1.07.00</version> > </dependency> > <dependency> > <groupId>org.primefaces</groupId> > <artifactId>primefaces</artifactId> > <version>11.0.0</version> > <classifier>jakarta</classifier> > </dependency> > <dependency> > <groupId>org.primefaces.themes</groupId> > <artifactId>cupertino</artifactId> > <version>1.0.8</version> > </dependency> > </dependencies> > > I can provide the full list of all JARs, if that would help. The thing > that confuses me that the error message doesn’t clearly say that there’s a > duplicate definition of the jakarta.faces.context.ExternalContext class. If > that was the case, one would reasonably expect that the loader would > include the names of JARs where these duplicate definitions are found. I’m > also not sure if one loader already found the required class, why would web > app initialisation code go with another loader to try the same class? Maybe > I’m speculating too far :-) > > > On 24 Jul 2023, at 11:55 pm, Jonathan S. Fisher <exabr...@gmail.com> > wrote: > > > > Provided is definitely the correct scope, are you pulling in any other > > "spec" jars by chance into your maven build? > > > >