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.
Related
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.
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=
The server does not support version 3.0 of the J2EE Web module specification.
I am getting this error when I am publishing my module in jboss-5.1.0.GA-jdk6.
I have read all the solutions on google as well on stackoverflow, but didn't get the proper solution.
The solution is to use the version of the servlet spec that your JBoss server supports, or to use a version of the JBoss server that supports version 3.0 of the servlet spec. You're trying to use a brand new version of the spec with an old server that was released when this version of the spec didn't even exist.
See https://community.jboss.org/wiki/VersionOfTomcatInJBossAS for a matrix of JBoss versions and servlet spec versions.
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
I am really wonder what this actually means?
Can I use JBoss 7 in development and also in production with all EE 6 features (I need JMS, EJB 3.1, JSF 2.1, CDI...) or I have to wait for later releases of JBoss 7?
If not, what is the option since JBoss 6.x is only Web Profile certified and what is explanation for "only Web Profile certified"?
Thanks
An application server is only Java EE 6 "Full Profile" certified if it implements all aspects of the huge Java EE API.
An application server is only Java EE 6 "Web Profile" certified if it implements at least the following aspects of the Java EE API:
Servlet 3.0 / JSP 2.2 / EL 2.2 / JSF 2.0 / JSTL 1.2
EJB 3.1 Lite (support for Local containers only, i.e. no EARs)
JPA 2.0 / JTA 1.1
CDI 1.0
Bean Validation 1.0
JBoss 6 is only "Web Profile" certified, even though it also implements a lot of other Java EE aspects like JMS, EJB 3.1 Full, JAX-RS, etc, because it does not implement the entire Java EE API yet. If JBoss 6 offers exactly what you need, then I wouldn't worry about this certification. It's not an evidence that it's production-ready or something.
See also:
Overview of Java EE technologies and requirements for Web Profile
Can I use JBoss 7 in development and also in production with all EE 6 features (I need JMS, EJB 3.1, JSF 2.1, CDI...) or I have to wait for later releases of JBoss 7?
It depends on whether you associate any value with a certificate. JBoss 7 is not Java EE6 certified, because it has not yet been run against the Java EE 6 Full Profile TCK (technology compatibility kit), not that it doesn't implement any of the features required by Java EE 6. According to this post in the JBoss forums, a later 7.x (most likely 7.1) release of JBoss 7 will undergo the certification process.
If not, what is the option since JBoss 6.x is only Web Profile certified
You could wait for EAP 6 (which would include the certified JBoss 7.x release).
and what is explanation for "only Web Profile certified"?
JBoss 7 has passed the Web Profile TCK (which is a seperate TCK). The Web Profile specification outlined in JSR 316, states that the following components are required in a Web Profile compliant container:
WP.2.1 Required Components
The following technologies are required components of the Web Profile:
Servlet 3.0
JavaServer Pages (JSP) 2.2
Expression Language (EL) 2.2
Debugging Support for Other Languages (JSR-45) 1.0
Standard Tag Library for JavaServer Pages (JSTL) 1.2
JavaServer Faces (JSF) 2.0
Common Annotations for theJava Platform (JSR-250) 1.1
Enterprise JavaBeans (EJB) 3.1 Lite
Java Transaction API (JTA) 1.1
Java Persistence API (JPA) 2.0
Bean Validation 1.0
Managed Beans 1.0
Interceptors 1.1
Contexts and Dependency Injection for the Java EE Platform 1.0
Dependency Injection for Java 1.0
WP.2.2 Optional Components
There are no optional components in the Web Profile.
Web Profile products may support some of the technologies present in the full Java EE Platform and not already listed in Section WP.2.1, “Required Components”, consistently with their compatibility requirements.
By passing the Web Profile TCK, and by also including the components required in the Full Profile (allowed by WP2.2), you can continue to build applications requiring the full profile, on JBoss 7.
If your application requires only the web-profile instead of the full profile, then you may use JBoss 7 as a Web Profile certified container. There is of course, JBoss EAP, for those who require an enterprise solution with paid support options; the community version does not have any such SLA-based support option from JBoss/Redhat.
Just to give an update, JBoss 7.1.x is Java EE 6 Full Profile certified. JBoss 7.1.0.Final was released on 2012-02-16.