I have Apache Tomcat 7.0 and have developed two different applications in PHP and Java EE. I want to deploy these two applications in the same server, Apache Tomcat 7.0.
Is there any possibility of deploying both applications in the same server?
Is it possible to have inter application communication?
Can I pass data from one application to the other?
Yes, you can run PHP and Java applications in a same server with Tomcat 7, Apache 2 and JK Connector.
http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html
You can use database or webservice to share data.
Java, obviously, runs on Apache Tomcat already. But you can also install quercus/php on your Tomcat Server, and then run your PHP application directly on Tomcat as well, eliminating the need for Apache HTTPd and mod_jk. (No I dont work with them. Just a user.)
Once you have both Apps on same Tomcat server, you have several options to have them communicate with each other.
Web Services expossed by either or both apps.
crossContext=true
Having a Shared Memory Block seems to be an option, as described here.
There would be more ways I suppose, these are the ones that come to mind.
Related
I am trying to use Websockets for my webapp, for pushing data from server to browser. I am using Java 1.6 (Can not upgrade to java 1.7 due to other dependencies) and I need this to work on any containers like Tomcat, WebLogic, JBoss, etc...
Two libraries I could found are –
“java-websocket” – http://java-websocket.org/
“javax.websocket” –
http://repo1.maven.org/maven2/javax/websocket/javax.websocket-api/1.0/
Server example provided with “java-websocket” is like a standalone Java Program. But I am trying to find a solution which integrates into my webapp.
My webapp address looks like this - http://localhost:8080/demo i.e. runs on say port 8080. However, java-websocket Server needs a port to start. Which means it does not interrelate well into my webapp.
Second library “javax.websocket” which works very well in a webapp context. But I cannot use it because it needs Java 1.7, and I am using Java 1.6.
Does anyone know whether it is possible at all to use “java-websocket” in webapp context? Or may be is there any other better library for this need which works with Java 1.6?
Thank you in advance.
I need portable container for running web services as server. JSON as a response. The server application must be able to start up using .bat script under Windows. Machine running the server must have only Java Runtime Enviroment installed, no other stuff required.
Axis2 on top of Tomcat do not seem like simple portable web server. What are the other alternatives?
UPDATE:
How come no one offered?
com.sun.net.httpserver.HttpServer;
and
com.sun.jersey.api.container.httpserver.HttpServerFactory;
Jetty is a good option.
Another very lightweight option is fluent-http.
I'm not that familiar with Axis2, but as far as I know you can use embedded tomcat to achieve this with whichever frameworks you please.
Take a look at the tomcat maven plugin which I believe will even generate your application as a jar containing embedded tomcat in the latest version.
I'm studying webservices in differents languages and now, I'm stuck on Netbeans one.
I easily create a "RESTful web service with Database" on localhost.
So, I use a MySQL (Connector/J driver) connection with GlassFish server.
My question is : what's the difference between an Apache server and a GlassFish one ?
Indeed, I aim to deploy this webservice on Apache server but I have no idea to do it.
Is someone have tips or ways to help me ?
Thanks a lot !
I'm assuming you followed this tutorial.
If you mean good old trusty Apache httpd, you won't be able to deploy the project you created to that server, what you create is a Java Enterprise application (and more specifically a WAR, a Webapplication ARchive), and you will need a server capable of deploying that type of applications - like of course Glassfish, but also Apache Tomcat, jetty or any of the Java Enterprise Edition servers
Still assuming that you're talking about Apache httpd, that one and Glassfish are entirely different beasts that serve different purposes, Glassfish is indeed capable of serving up content over http but it contains much more functionality than that, see the above Wikipedia link on Java EE for more links and pointers.
EDIT: you cannot run a servlet container like Tomcat or a Java EE server like GlassFish "inside" an Apache server like you would run php "inside" Apache with mod_php, but it's quite easy to run them alongside each other, where the Apache httpd server is the one that faces outward and basically forwards calls to the backend Java server. There are several techniques to achieve this result, the most popular is probably using mod_jk as explained here for Tomcat and here for Glassfish. Alternatively you could setup mod_proxy, a comparison of these two scenarios here on SO.
Anyways, it's not always necessary to front a Tomcat or Glassfish with an Apache but it may be needed e.g. if the website is serving hybrid content partially written in php or another apache-hosted scripting language or useful to avoid using the servlet container to serve up massive quantities of static content, often not their strongest point. For many applications it's perfectly OK to have a Tomcat or a Glassfish serve up all content avoiding the extra complications introduced by mod_proxy or mod_jk and the dual management of both servers.
open server.xml file in conf folder of apache tomcat. And check for line
Here you can see port =5051 means apache tomcat is configured in port 5051
Open we browser and type http://localhost:5051
Then click "Tomcat manager"
Enter your usename and password
In the next screen you can see section "WAR file to deploy". Select your web service war file and click deploy
I have just ordered a VPS from my provider.
I have some Q however...
My website uses Solr, which requires the following according to their website:
"Solr requires Java 1.5 and an Application server (such as Tomcat) which supports the Servlet 2.4 standard"
I also need php 5, MySql, and the usual javascript etc...
The OS is Ubuntu 9.10
1- So what do I need to install then?
2- What is a servlet container?
3- The solr I have downloaded came with Jetty. Is Jetty a Servlet container?
Thanks
3- The solr I have downloaded came
with Jetty. Is Jetty a Servlet
container?
Yes, Jetty is a Web server and Servlet container. A servlet container is a web server that interacts with servlets, and you need one of those to host your servlets, execute them, etc.
An application server typically hosts many other facilities, such as security, authentication, Java Mail, EJB container, and many others.
PHP: Hypertext Preprocessor is a widely used, general-purpose scripting language that was originally designed for web development to produce dynamic web pages.
PHP 5 included new features such as improved support for object-oriented programming, the PHP Data Objects extension (which defines a lightweight and consistent interface for accessing databases), and numerous performance enhancements.
Servlets are Java programming language objects that dynamically process requests and construct responses. Jetty is the simplest/smallest servlet container that could be run easily in a cross platform way. That does not imply that Solr runs better under Jetty, or that Jetty is only good enough for demos, it's just that Jetty makes demo setup easier.
Users should decide for themselves which Servlet Container they consider the easiest/best for their use cases based on their needs/experience. For high traffic scenarios, investing time for tuning the servlet container can often make a big difference.
A Servlet container is basically a web server for Java Servlets and JSP pages.
Tomcast and Jetty are both Servlet containers.
In the phrase you quoted, it is using the phrase "Application server" interchangeably with "Servlet container". While Solr may only require a Servlet container, it shouldn't use the terms interchangeably.
The Servlet container is only part of a J2EE application server. Some other application servers (that also include Servlet containers) are JBoss and Apache Geronimo; Geronimo uses either Tomcat or Jetty depending on which set you install.
If you also need PHP, a Servlet Container won't be enough... you'll also need a normal webserver.
Installing the libapache2-mod-php5 module from the Ubuntu repository should install both PHP5 and Apache 2.2 for you. To install MySQL, install the mysql-server and php5-mysql packages.
Assuming you only have command-line access, installing packages on Ubuntu is done using the aptitude or apt-get programs; aptitude is preferred.
Before you install new programs, you should always run aptitude update, which updates the local index of which programs are available. Afterwards, you can upgrade existing packages with aptitude safe-upgrade and install new packages with aptitude install <packagename> (without the <>)
Ubuntu is usually pretty good about keeping the available package list up to date, and will periodically tell you on login that some packages have available upgrades. Since upgrades are almost always security updates, it is a good idea to check for them.
I also need php 5, MySql, and the usual javascript etc... The OS is Ubuntu 9.10
1- So what do I need to install then?
Use Apache HTTPD server for PHP, use Apache Tomcat for JSP/Servlet, use mod_jk to let HTTPD play proxy for Tomcat so that you can run PHP and JSP at one same site.
Since JavaScript is a client side language, you don't need to worry about it at the server side.
2- What is a servlet container?
A webserver with a JSP/Servlet API implementation. An application server is usually more than that. JSP/Servlet is only a little part of the huge Java EE API. A fullfledged application server implements pretty much all of Java EE API.
3- The solr I have downloaded came with Jetty. Is Jetty a Servlet container?
Yes, it is. It however doesn't support PHP. You need Apache HTTPD for PHP. However I am not aware of ways to connect Jetty with HTTPD.
I have WAMP installed on my local machine and am looking to serve up charts using jFree's Eastwood charting, which requires me to use servlets. So basically I will insert images with src tags that have URLs pointing to my servlet on the same machine.
What's the easiest way to enable servlets on the same machine? Do I need to install a servlet server on a different port? Or is there a way to integrate it into WAMP?
You have a couple of choices.
The easiest is to get a Web container such as Tomcat or Jetty and run it on a different port (by default it's usually 8080).
A Web container can be integrated into Apache and this tends to be what happens in production sites. See Tomcat-Apache HOWTO or Apache 2 with Tomcat 6: How to Configure. It's probably overkill for a local install.