EJB,JAX-WS support by Spring tcServer - spring

I see tcServer is built on Apache Tomcat. So the support of EJB,JAX_WS support is not available on tcServer/ApacheTomcat. But Apacahe Tomcat has other versions like TomEE+ or integrating OpenEJB, provides support for EJB,JAX-WS.
So, is there similar support by tcServer to support EJB,JAX-WS?

No, Like you said tc Server is based on Apache Tomcat, not TomEE. So, there is no support for EJB or JAX-WS, nor is there an effort to support EJB or JAX-WS.

Related

Spring boot 3 - Jakarta and Javax

In the new Spring boot 3 Release notes, They tells that this version is going to use Jakarta EE 9 (libs named as jakarta) instead of JEE (libs named as javax).
They advise developers to replace imported javax with jakarta in this article.
If I have a spring boot app with both, javax and jakarta libs, will the app work and be able to be deployed in a Jakarta compatible server (e.g. Tomcat 10)?
Thanks a lot.
The answer will really depend on which specific libraries you're using and how they interact with each other, but generally speaking trying to mix Java EE and Jakarta EE them would be a bad idea.
As an example, if you're writing a Spring MVC application then you'll be using the DispatcherServlet. In Spring Framework 6 this will require the Jakarta Servlet API. There's not going to be a way to make it work with the javax.servlet For other APIs, if you're using them directly and you're not making use of Spring abstractions that build on them, you may get away with having them on your classpath. I still wouldn't recommend it.
You could try to put the web app instead of in webapps into webapps-javaee like described in https://tomcat.apache.org/migration-10.html#Specification_APIs
Then TC10 will create a new war in webapps and unpack it as usual in webapps. I tried it with some of our pure TC8/9 Apps and it was working.

Does Spring IO Platform BOM support Java 1.6?

I saw from the Spring IO Platform website (http://spring.io/blog/2014/06/26/introducing-the-spring-io-platform) and it states that Spring IO is certified to work with Java 1.7 and 1.8.
However, the production stack of my company is Java 1.6 only so may I know that does Spring IO Platform BOM support Java 1.6 as well?
We intensive use Spring, Spring Data, Spring Batch, Spring Integration, Spring Retry.
thanks in advance
No, Java 6 isn't supported by Spring IO Platform. That said, I'm not aware of anything in the projects that you have listed that require Java 7 so it may well work but it isn't something that we (Pivotal) have tested or support.

Does Websphere Liberty Profile support full Java EE 7 OR Servlet 3.1 Specification?

I am interested in using the Non-Blocking I/O features of Servlet Specification 3.1 like here http://docs.oracle.com/javaee/7/tutorial/doc/servlets013.htm#BEIHICDH
I can't find a definitive answer on IBM dev site whether JSR-340 is supported.
Does WAS LibertyProfile support Servlet Specification 3.1 ?
A slide deck from Impact2013 said that WAS 8.5.5 is at servlet 3.0. The recent 8.5.5.next notes didn't mention anything about updating that.
This page from Oracle shows the certified servers:
http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html
If you care to look at any other servers, apart from glassfish the wildfly beta is reported to support servlet 3.1 (and Jave EE 7 in general) but I have no idea when to expect the release.
http://undertow.io/
New update.. WAS Liberty 8.5.5.5 (March 2015) supports several Java EE7 technologies (for production use) including Servlet 3.1 and Websocket 1.1. Announced today is the full Java EE7 stack for Liberty which will be available on 26th June.
The version 8.5.5.4 supports Servlets 3.1 and WebSockets 1.0 and some other Java EE 7 specs, but not yet all. For latest information check this page New Liberty features and tools
No, it only supports Servlet 3.0. See the Programming model support page in the 8.5 InfoCenter.
update, they have a beta out
https://www.ibmdw.net/wasdev/2014/03/28/announcing-websphere-application-server-beta/
it has some java ee 7 but no servlet 3.1 yet

Using Felix within a Servlet 3.0 server (like Tomcat 7)

I'm converting an application to an OSGi environment.
This application uses asynchronous servlets (so Servlet 3.0.0+) to detach the incoming requests from their thread, and queue the requests.
As far as I can see, all servlet bridged Felix packages use servlet 2.x, so I can not use servlet 3.0 specific stuff.
Is that true? Is there any way to use asynchronous servlets in Felix? If not, is it
planned?
I've tried both Felix and Equinox.
Felix turned out to be pretty easy, it's mostly a matter of injecting the Servlet 3.0 package to the framework, from then on there aren't any servlet 2.0 dependencies.
Note that the examples on the felix site aren't completely up to date.
Anyway: I've shared an example on github, maybe it's useful for somebody:
https://github.com/flyaruu/felix-bridge
As an alternative to a servlet bridge it might be worth looking at Eclipse Virgo. The latest release of that currently includes Tomcat 7 and I believe the 3.5 release will use Jetty 8, so that would give you your servlet 3.0 support in an OSGi environment.

Enterprise Application

I am thinking about a platform for study application (it is team work). I mean standard Java EE 5 (or maybe try raw Java EE 6) and Spring. What is your choose? (I don't mean Spring MVC but Spring Beans and EJB 3.0)
Also I would like to know what app server you use? (now I use GlassFish v2)
I would recommend Spring without EJBs.
My favorite choice of Java EE app server is WebLogic, but I don't know if Oracle is as generous as BEA was about making it available to developers.
I'd recommend using Tomcat as your app server. If you need JMS, add ActiveMQ.
As duffymo says, look at Spring without EJBs. Spring is very powerful, regardless of how much/little you use. I don't know of anyone using EJBs now. Having said that, EJBs have changed dramatically over the years, and now resemble ORMs such as Hibernate (which is worth checking out in itself).
For app servers, check out JBoss. It's free/open-source, and you can choose the web component between Tomcat and Jetty. It's JMX backbone allows you to easily monitor its state and to integrate your own JMX beans into that backbone (if you're using Spring, you can JMX-enable any bean with a simple configuration).
If you want Java EE 6 then the choice appears to be either Glassfish 3 or the beta of JBoss 6. As some of the others have said, I also prefer Spring to Java EE's EJBs.
I don't see much point in looking at Java EE 5, unless you think you will be working with it in the future (possible as some companies are conservative in using newer versions of technology).

Resources