Tomcat + CxF ready for Production? - java

Our new project has Apache CXF based Producer SOAP web services.Now we are planning to move the Web Services to production.We are looking for a suitable Open Source container(Web Server or App Server) for deploying CXF Based Java Web Service.First option came to mind was Tomcat 7 .Just needed expert advice on
1. Whether combination of CXF and Tomcat based WebServices are currently used in production for other projects ?And is this solution scalable & Reliable ?
2. Are there other options to deploy CXF based webServices other than Tomcat in production ?
Thanks!

1 . Whether combination of CXF and Tomcat based WebServices are currently used in production for other projects ? And is this solution scalable & Reliable
It shouldn't give you any issue since it is compatible with a wide variety of application server. We are using Tomcat7 and Tomcat6 to deploy our CXF web services and they are in production for quite some time now without any issue.
2 . Are there other options to deploy CXF based webServices other than Tomcat in production ?
There are multiple options to deploy cxf based web-services
From the docs
Lightweight containers: deploy services in Jetty, Tomcat or Spring-based containers
JBI integration: deploy as a service engine in a JBI container such as ServiceMix, OpenESB or Petals
Java EE integration: deploy services in Java EE application servers such as Apache Geronimo, JOnAS, Redhat JBoss, OC4J, Oracle WebLogic,
and IBM WebSphere
Standalone Java client/server

Related

What is the relationship between Apache Tomcat and Apache Axis2 in the context of RESTful API and WSO2

I know I want to build a RESTful api and use Angular on client side. I am choosing between server technologies. Apache Tomcat can do RESTful web services and could do for years now. I was wondering if Axis2 is meant to be replacement for Tomcat. Also I have been encouraged to incorporate WSO2 middleware which uses Axis2. Ideally I'd like to use REST on Axis2 and then WSO2 middleware.
What is the relationship between Apache Tomcat and Apache Axis2 in the context of RESTful API and WSO2? Does Axis2 run within Tomcat?
Apache tomcat is an application server whereas Axis 2 is a Web Services engine.
So no, Axis2 is not meant to be replacement for Tomcat. An application built with Axis2 can be deployed on Tomcat or any other compatible Application Server(AS).
So yes, Axis 2 can run within Tomcat.
WSO2 is irrelevant to your question. Middleware includes Web servers, application servers, content management systems, and similar tools that support application development and delivery.
For a quick description Apache Tomcat is a web server and more precisely a servlet container that allows you to handle HTTP resquest inside servlet.
Apache Axis 2 is a librairy that can handle web services (SOAP and RESTFull), it can run on a server such as Tomcat.
For REST API you can use WSO2 ESB or WSO2 API Management...also if you want to build a restful service you can create a webapp with JAX-RS and deploy it in WSO2 Application Server. As WSO2 Application server use Apache Tomcat you don´t require an Apache Tomcat Server.

Spring application deployment on Java-ee servers

Can I deploy a Spring java application on all (or at least most) of JavaEE servers ? like Weblogic, JBoss, Webshpere, Tomcat, Jettty etc.
And is there is preferred Java EE server for Spring ?
Yes you can. And no - there isn´t. Errata: you can take a look at the SpringSource dm Server. Be aware that spring is not a java EE implementation. Read this post here.
Yes, you can deploy it on any server, and you can use it on standalone applications and even on mobile applications. It is in no way restricted to web deployment. It is not even restricted to java, there is Spring.NET and even a Python version. However, java and web servers are a common if not the most common use for it.
Currently recommended web server by VMWare/Pivotal (current owner of Spring) is VFabric tcServer, which is a Tomcat fork containing some extra tools and functionality. But server in itself does not matter, Spring is container agnostic.
There is no preferred EE server. VFabric tcServer is a servlet container, not an EE server. It contains "enterprise capabilities" instead, but that's not the same thing. As said however, you can use whichever EE server you want.

How to know what glassfish is - full plaform or web profile?

I have installed glassfish. I can run
asadmin version
It shows what version it is, but how to know it is "Full Platform" or "Web profile"?
You could use the
glassfish4\bin>asadmin list-containers
command. Which lists all known application containers. A full profile server reports this:
jpa
jpa
web
weld
weld
security
grizzly
ear
ejb
osgi
resources_ear
resources
appclient
webservices
connector
A web profile server reports this:
jpa
jpa
web
weld
weld
security
grizzly
ejb
osgi
resources_ear
resources
connector
Not much difference but it should be enough ;)
You can look at the license file name to determine if it is Full profile or Web profile
<glassfish install dir>/glassfish/legal/3RD-PARTY-LICENSE.txt
<glassfish install dir>/glassfish/legal/3RD-PARTY-LICENSE-WEB-PROFILE.txt
GlassFish Web Profile: It is a lighter version of GlassFish that is designed for web applications and only includes a subset of the Java EE technologies.
GlassFish Full Platform: It is the complete version of GlassFish that includes all Java EE technologies.
Which one to download depends on the requirements of your project. If you are developing a web application and do not need the full Java EE stack, then the GlassFish Web Profile would be a good choice. If you are developing a more complex application that requires the full Java EE stack, then the GlassFish Full Platform would be a better choice.

Is there a way to use WebSockets on IBM WebSphere Application Server?

I am migrating a web application based on Apache Tomcat 7.0.35 using the WebSocket Servlets to IBM WebSphere Application Server (WAS). The problem is that I don't think WAS supports WebSockets.
You can try the WebSphere Liberty 8.5.5.4 -- this supports WebSockets. See announcement here.
See also:
Liberty profile: Web Sockets
WAS doesn't support WebSockets as stated on an IBM forum here. What you can do is to investigate if you can deploy in WAS one of the WebSockets server implementations (check this list).
You can also try embedding the Jetty Web Server on the java application to run on your WebSphere Application Server - http://www.eclipse.org/jetty/documentation/current/embedding-jetty.html. Another option is to make use of a WebSockets implementation (e.g. Wabbit), or make use of an Application Server that supports the Java EE 7 specs, like IBM WAS 9.

Tomcat or JBoss server for a Java EE application?

This might be duplicate of this and this question.
I have a java application in which i am using JAX-WS (WEB SERVICES). and many other features in it like apache-commons utils.
My application is swing application, that connects to my server code
and uploads and downloads, and sync files with the server. my
database is mysql.
I have compiled my server code and created a .WAR file. i deployed
that .WAR (containing all the required libraries for my server
side application) file on a JBoss server and its working fine.
Now my Management says me to why use JBoss instead of Tomcat, which
easy to manage and setup on a linux server. actualy they have a
linux server which supports tomcat, but not JBoss. so they said to
me to deploy on Tomcat on Linux Server. I installed and configured
tomcat on my windows and deployed a .WAR file. and also created
virtual directory for my resources its working fine[but not tested
completely]
My Application does not have EJB so I think that Tomcat is good enough.
Please suggest me is it fine to use Tomcat instead of JBoss server,
I am worried if it may get problems in the future, or it might not
support features of my application in future or after complete testing.
JBoss uses Tomcat under the hood to host war applications anyway.
Using Tomcat for you war application instead of JBoss should be perfectly fine.
Any commons-jars that you are using can be downloaded from http://commons.apache.org/. Put them in your lib directory and you should be good to go. Most apache commons libraries should allready be included with Tomcat though, you'll have to check.
PS:
JAX-WS is standard in the latest JDK6 updates. If your using a earlier version of the JDK then just download the JAX-WS jars. The standard reference implementation from Oracle/Sun can be downloaded from here http://jax-ws.java.net/
Do you have EJB? JBoss comes with its implementation of the EJB JSR specification.
For Tomcat, you require plugins like openEJB.
Many application servers use Tomcat internally as its Servlet container. But for compliance to JavaEE standards, most would choose a JBoss application server over Tomcat anyday.
Note that JBoss 7 Application Server Web Profile is certified.
Tomcat functions well as a plain vanilla Servlet container. Many enterprises when using Tomcat, couple it with Proxy and HTTPD servers for security and load balancing reasons.

Categories