Every tutorial for the upgrade to Spring 5 has tomcat 8.5+ as a requirement but no detailed explanation. The application that I want to upgrade should not run as a standalone application with an embedded webserver, but beeing deployed on a tomcat 6, which we cannot upgrade for several reasons.
As #procrastinate_later points out, Spring 5 actually requires Servlet 3.1 (and Tomcat 8.5.x).
Spring 5 has initially was expected to have Servlet 3.0+ minimum requirement which supported only from tomcat 7
We’ll definitely raise to Servlet 3.0+ (from our present Servlet 2.5 runtime compatibility)
So you need to upgrade to at least Tomcat 7.
Looking at the What's New in Spring Framework 5.x documentation:
Java EE 7 API level required in Spring's corresponding features now.
Servlet 3.1, Bean Validation 1.1, JPA 2.1, JMS 2.0
Recent servers: e.g. Tomcat 8.5+, Jetty 9.4+, WildFly 10+
Cross-referencing this with the Apache Tomcat Which Version documentation, Tomcat 8.0 would be sufficient for the Servlet 3.1 requirement, but Tomcat 8.0 has been superseded by Tomcat 8.5+, as stated in the Which Version (Tomcat 8.x) documentation:
Tomcat 8.5 is thought as a replacement for Tomcat 8.0. Please refer to Migration guide for guidance on migrating to Tomcat 8.5....Users of Tomcat 8.0 should be aware that Tomcat 8.0 has now reached end of life. Users of Tomcat 8.0.x should upgrade to Tomcat 8.5.x or later.
Related
Java EE 7 requires support for a default DataSource as discussed:
Defaults in Java EE 7 (Tech Tip #37) by Arun Gupta
Using default DataSource to simplify the development and deployment of a Java EE application by Matti Tahvonen
While I realize Apache Tomcat & Eclipse Jetty provide only a small subset of Java EE features, I wonder if either provides a way to configure such a default DataSource.
Eclipse Jetty and Apache Tomcat are defined as "web containers".
They only support the Servlet spec and a few incidental/related specs around the Servlet spec (such as JSP, JAAS, JSR 356 javax.websockets, etc).
For Eclipse Jetty, there's no full Java EE support option.
For Apache Tomcat, there's TomEE to bring in more of the features of Java EE to comply with the Web Profile of Java EE.
As for comp/DefaultDataSource, neither project has a mention of it in their codebases (not even testcases or documentation).
https://github.com/eclipse/jetty.project/search?utf8=%E2%9C%93&q=DefaultDataSource&type=
https://github.com/apache/tomcat85/search?utf8=%E2%9C%93&q=DefaultDataSource&type=
Anybody facing the same problem? When I try to change the Dynamic Web Module version, eclipse does not allows me to.
Check this Link:
Quoting the same:
The error message is quite understandable - you are attempting to execute an application that requires the server to support Servlet Spec 3.0 when it doesn't. You must therefore, run the application on a server that complies with that version of the Servlet Specification.
As far as I know you have the following options at your disposal, at the time of writing this:
Apache Tomcat 7.0
Glassfish 3.1
IBM WebSphere 8
JBoss 6 and 7
I want to ask if Websockets configuration in jetty 8 can not be done through annotations like we do in jetty 9. Jetty 9 has both JSR-356 implementation and its own implementation.
I was referring this http://examples.javacodegeeks.com/enterprise-java/jetty/jetty-websocket-example/.
Question is can we use annotations to configure websockets in jetty 8. If yes then how?
Jetty 8 is EOL (End of Life), and only supported Servlet 3.0.
It never had support for JSR-356 (javax.websocket)
Jetty 9.1.0 added support for JSR-356 as part of its Servlet 3.1 finalization.
As we know, WebLogic Server 12c supports natively Java EE 7.
However, if we take a look at the WebLogic 12c documentation of standards there will be a lot of versions differences. Such as:
Java EE 7: Servlet 3.1, JPA 2.1, EL 3.0, JAX-RS 2.0, EJB 3.2, JMS 2.0
WLS 12c: Servlet 3.0, JPA 2.0, EL 2.2, JAX-RS 1.1, EJB 3.1, JMS 1.1
It's just a matter of importing the libraries? Or there is any restriction to use these latest versions?
Thanks a lot!
** UPDATE: WebLogic 12.2.1 is now released. It is Java EE 7 and JDK 8 certified. **
Wrong! WebLogic 12c (12.1.3) is Java EE 6 certified.
Versions 12.1.1 and 12.1.2 do not offer any feature of Java EE 7, although it is possible to run some new APIs over them (but you won't get support). But as you are interested, it provided on release WebLogic 12.1.3 a few Web-related features of Java EE 7 (such as fully compliant JAX-RS 2.0 and WebSockets).
Please read through the documentation as pointed by David Hunt. For a roadmap of WebLogic 12.1.3, you can see the blog post The road ahead for WebLogic 12c 12.1.3 and 12.1.4 (12.2.1).
Weblogic 12c 12.2.1 fully supports Java EE 7. Finally released...
Weblogic 12c 12.1.3 supports some of Java EE 7.
Has anybody successfully implemented Weld with a JBoss AS 5.1 project? I'm using EJB3.1, and I'm disappointed with the injection limitations (can't call from POJO, lookups from JNDI)
BUT on their site, JBoss 5.x isn't listed as a tested platform.
http://seamframework.org/Weld
Supported platforms
Weld has been tested on the following platforms:
JBoss Application Server 7
JBoss Application Server 6
GlassFish V3.x
Apache Tomcat 6 & 7
Jetty 6.1 & 7.x
Java SE 5.0+
Anyone have success with this?
CDI support is only available OOTB in AS6 and above. If you want, you can embed Weld in your ear or war file. but it won't have EJB integration