tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xavier Dupont <xavier...@gmail.com>
Subject Re: Which maven provided dependencies to target Tomcat ?
Date Wed, 09 May 2018 19:08:54 GMT
Hi Luis,

I'm sorry to say that if you use javaee-web-api on Tomcat, you will pull,
among others, javax.transaction:javax.transaction-api:1.2 which contains,
for example, javax.transaction.HeuristicCommitException and if you try to
put resp.getWriter.println(HeuristicCommitException.class.getName()); your
IDE won't complain but the servlet will throw a ClassNotFound exception at
runtime.

This assuming javax.transaction.HeuristicCommitException is not brought by
some other dependency.

You will get the same result with many other dependencies of javaee-web-api.

I actually performed the same experience with all 17 dependencies of
javaee-web-api, selecting one arbitrary class and checking if it was found
when deployed on tomcat, and I found that only the following should be
included in a project which targets tomcat 8.5 / Java EE 7

<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>

Xavier

2018-05-09 18:17 GMT+02:00 Luis Rodríguez Fernández <uo67113@gmail.com>:

> Hello Xavier,
>
> Perhaps you can have a look here:
> https://wiki.apache.org/tomcat/Specifications.
>
> Me, I have:
>
> <dependency>
>             <groupId>javax</groupId>
>             <artifactId>javaee-web-api</artifactId>
>             <version>7.0</version>
>             <scope>provided</scope>
>         </dependency>
>
> Hope it helps,
>
> Luis
>
>
>
>
>
> 2018-05-09 16:35 GMT+02:00 Xavier Dupont <xavierdpt@gmail.com>:
>
> > Hi guys.
> >
> > If I want to target the Java EE full profile, I use go here
> > https://mvnrepository.com/artifact/javax/javaee-api/8.0 and get the
> > following XML snippet.
> >
> > <dependency>
> >     <groupId>javax</groupId>
> >     <artifactId>javaee-api</artifactId>
> >     <version>8.0</version>
> >     <scope>provided</scope>
> > </dependency>
> >
> > If I want to target the Java EE web profile, I use  this url instead
> > https://mvnrepository.com/artifact/javax/javaee-web-api/8.0
> >
> > And if I only need a subset of JSRs included in the javaee web profile,
> > they are all nicely included in the list of compile dependencies, this is
> > all very nice.
> >
> > Since tomcat only supports a subset of the web profile, which
> dependencies
> > should be added in maven ?
> >
> > Here's the full list for the Java EE 7 Web profile.
> >
> > javax.annotation:javax.annotation-api:1.2
> > javax.ejb:javax.ejb-api:3.2
> > javax.el:javax.el-api:3.0.0
> > javax.enterprise:cdi-api:1.1
> > javax.faces:javax.faces-api:2.2
> > javax.inject:javax.inject:1
> > javax.interceptor:javax.interceptor-api:1.2
> > javax.json:javax.json-api:1.0
> > javax.servlet:javax.servlet-api:3.1.0
> > javax.servlet.jsp:javax.servlet.jsp-api:2.3.1
> > javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1
> > javax.transaction:javax.transaction-api:1.2
> > javax.validation:validation-api:1.1.0.Final
> > javax.websocket:javax.websocket-api:1.0
> > javax.ws.rs:javax.ws.rs-api:2.0
> > org.eclipse.persistence:javax.persistence:2.1.0
> > org.glassfish:javax.faces:2.2.0
> >
> > I ask because I couldn't find the answer on the web, and it seems to me
> > that many sources are actually quite wrong and how it should be done.
> > I believe this should appear in a section of the tomcat documentation, at
> > least for versions 6, 7, and 8 of Java EE, which Tomcat seems to track.
> >
> > Xavier.
> >
>
>
>
> --
>
> "Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better."
>
> - Samuel Beckett
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message