Re: Which maven provided dependencies to target Tomcat ?

2018-05-09 Thread Xavier Dupont
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


javax.el
javax.el-api
3.0.0
provided


javax.servlet
javax.servlet-api
3.1.0
provided


javax.servlet.jsp
javax.servlet.jsp-api
2.3.1
provided


javax.websocket
javax.websocket-api
1.0
provided


javax.annotation
javax.annotation-api
1.2
provided


Xavier

2018-05-09 18:17 GMT+02:00 Luis Rodríguez Fernández :

> Hello Xavier,
>
> Perhaps you can have a look here:
> https://wiki.apache.org/tomcat/Specifications.
>
> Me, I have:
>
> 
> javax
> javaee-web-api
> 7.0
> provided
> 
>
> Hope it helps,
>
> Luis
>
>
>
>
>
> 2018-05-09 16:35 GMT+02:00 Xavier Dupont :
>
> > 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.
> >
> > 
> > javax
> > javaee-api
> > 8.0
> > provided
> > 
> >
> > 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
>


Re: Which maven provided dependencies to target Tomcat ?

2018-05-09 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Xavier,

On 5/9/18 10:35 AM, Xavier Dupont wrote:
> 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.
> 
>  javax 
> javaee-api 8.0 
> provided 
> 
> 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 ?

You may want to use Apache TomEE instead of Tomcat. TomEE uses Tomcat
at the code, but already provides the remaining "web profile"
dependencies.

- -chris
-BEGIN PGP SIGNATURE-
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlrzIU0ACgkQHPApP6U8
pFg/cBAAsE6GKtB1TBerw8FnF6dCDKjOyGm6pKiMpcLNH/Dun9e9l/TDCkHCsS2j
ep2tG+DrWDMrJ+oIX8A69WyZqRcRLNgNYj5/SJIZWyJtXBCeZ6IIZOl7c/3QfXgO
3MxTXiOmdae7g6oPlc6Yja8uqCIaxL5ZjvCOXHaa2EN3Qe17ypkJqDX5YDZ5UDcO
KuYJotWs1DpC+dlVTqD/MdJ1wxU0yu9YU7kiRxD8FsHj1DBsmnqM6V69mturztmz
FDBI+imGXpAWFWaH7KD8HgWC5qBQq8ERNbzlq/J9L8H/xtPNfJnMkBlPG4OstboK
4bbcuILgmbi9N9UiCJcYygfeDrTnqlp34j/UfqSuGn6YYCgKA17w2d0q1bJCrjLy
wYTpKZ89wFMBkR9fqe2BmhwyVs1Dr5RplRzcbT3jSdL/cjZt73kXSe2jFqBjvp+H
1uKF1D8OeQF0XKGaEEnV57L5iGeOjy708jc12a+ZR1peDcmmQ7UUDLLCZzj6Acdr
AS5rY72rpO3brvFX9FQBvW7PgftDH29WUiVMA/zO4kuZd5963tV4S701SOV9wQ5W
bgugC6x0lq0pENt7mILj1+19+1adH4gbZzNWXTvMk7H47AgfcEiYWe6D3P3K8R3o
iUMLZ1kNwEnXwX6Mpu8WT3EwwpN8rURlRvYIYlKXrCeSR4D3MWo=
=X9i6
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Which maven provided dependencies to target Tomcat ?

2018-05-09 Thread Luis Rodríguez Fernández
Hello Xavier,

Perhaps you can have a look here:
https://wiki.apache.org/tomcat/Specifications.

Me, I have:


javax
javaee-web-api
7.0
provided


Hope it helps,

Luis





2018-05-09 16:35 GMT+02:00 Xavier Dupont :

> 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.
>
> 
> javax
> javaee-api
> 8.0
> provided
> 
>
> 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


Which maven provided dependencies to target Tomcat ?

2018-05-09 Thread Xavier Dupont
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.


javax
javaee-api
8.0
provided


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.