From: mr_wu on
Dear Group,

Can you kindly give me suggestions on using Java as the main component
in website building? I'm especially interested in using it in backend
as well as front end and incorporate hopefully AJAX. Webserver I'm
familiar is apache, sql server will be postgres.

My background: I've already built a long running successful site with
mod_perl/apache/dbi as backend/front end with very little javascripts.

I wish to build on my java skills. I have already built a few
original desktop apps using j2se and in terms of lines of code my
experience with java is higher than perl. But I have known perl much
longer and I can build a website very fast in perl.

I am looking for something equivalent to mod_perl with perhaps a
templating feature built-in. I've looked into Tomcat but after
reading their intro + a bit more i'm not clear whether they have what
i want or even how it fits into apache if at all. Is glassfish an
alternative to Tomcat? What about jboss?

I've also written a tiny java applet on my mod_perl site and I notice
that the applet takes its time to load the first time. It's because
the browser has to load JVM the first time? I'm afraid that this type
of problem will be present if I were to use java for interactivity
i.e. AJAX. True or false? If I use JAVA just for server side (JSP?),
I won't see the problem? Will it be more interactive than pure
mod_perl site? Just easier to develop? More scalable?

Sorry for the long post

Thanks in advance for any suggestions. Any reading material online or
print? Server will be on linux. Development on Windows/Linux/Mac
better?
From: markspace on
mr_wu wrote:

>
> I am looking for something equivalent to mod_perl with perhaps a
> templating feature built-in. I've looked into Tomcat but after


JSPs are templates for Java EE. You want primarily Parts I and II of
this document:

<http://java.sun.com/javaee/5/docs/tutorial/doc/>

Look at the end part too for the sample applications. There are also
lots of good books on JEE (used to be called J2EE). Check out some
reviews on Amazon.


> reading their intro + a bit more i'm not clear whether they have what
> i want or even how it fits into apache if at all. Is glassfish an
> alternative to Tomcat? What about jboss?


Yes, Glassfish, JBoss and Weblogic all do basically the same thing as
Tomcat. Tomcat is very popular, free, and used by lots of ISP and
companies. Note that Tomcat primarily does just JSP and Servlets, which
is the real core of the JEE spec. The rest of the spec (EJP, etc.) is
not implemented by Tomcat. There are tons of books on Tomcat out there.

To "fit Tomcat into Apache," use mod_jk:

<http://tomcat.apache.org/connectors-doc/>


>
> I've also written a tiny java applet on my mod_perl site and I notice
> that the applet takes its time to load the first time. It's because
> the browser has to load JVM the first time? I'm afraid that this type
> of problem will be present if I were to use java for interactivity
> i.e. AJAX. True or false?


True. Most Java websites use HTML and JavaScript for the front end, not
Java applets. You might want to look into Java Server Faces.


> If I use JAVA just for server side (JSP?),
> I won't see the problem? Will it be more interactive than pure
> mod_perl site? Just easier to develop? More scalable?


Generally easier to develop with Java, I think, and more maintainable
and scalable. Perl turns in to a big ball of ... something pretty
quickly. Java tends to be more organized.

<http://en.wikipedia.org/wiki/Big_ball_of_mud>

>
> Sorry for the long post
>
> Thanks in advance for any suggestions. Any reading material online or
> print? Server will be on linux. Development on Windows/Linux/Mac
> better?


I think Windows/Ubuntu pretty much the same. Check out the JEE features
of a good IDE. For example:

<http://netbeans.org/kb/trails/java-ee.html>
From: mr_wu on
Thanks for very informative reply. JEE does have rather steep
learning curve. But I believe it will pay off in the end.


On Apr 22, 10:10 pm, markspace <nos...(a)nowhere.com> wrote:
> mr_wu wrote:
>
> > I am looking for something equivalent to mod_perl with perhaps a
> > templating feature built-in.   I've looked into Tomcat but after
>
> JSPs are templates for Java EE.  You want primarily Parts I and II of
> this document:
>
> <http://java.sun.com/javaee/5/docs/tutorial/doc/>
>
> Look at the end part too for the sample applications.  There are also
> lots of good books on JEE (used to be called J2EE).  Check out some
> reviews on Amazon.
>
> > reading their intro + a bit more i'm not clear whether they have what
> > i want or even how it fits into apache if at all.  Is glassfish an
> > alternative to Tomcat?  What about jboss?
>
> Yes, Glassfish, JBoss and Weblogic all do basically the same thing as
> Tomcat.  Tomcat is very popular, free, and used by lots of ISP and
> companies.  Note that Tomcat primarily does just JSP and Servlets, which
> is the real core of the JEE spec.  The rest of the spec (EJP, etc.) is
> not implemented by Tomcat.  There are tons of books on Tomcat out there..
>
> To "fit Tomcat into Apache," use mod_jk:
>
> <http://tomcat.apache.org/connectors-doc/>
>
>
>
> > I've also written a tiny java applet on my mod_perl site and I notice
> > that the applet takes its time to load the first time.  It's because
> > the browser has to load JVM the first time?  I'm afraid that this type
> > of problem will be present if I were to use java for interactivity
> > i.e. AJAX.  True or false?  
>
> True.  Most Java websites use HTML and JavaScript for the front end, not
> Java applets.  You might want to look into Java Server Faces.
>
> > If I use JAVA just for server side (JSP?),
> > I won't see the problem?  Will it be more interactive than pure
> > mod_perl site?  Just easier to develop?  More scalable?
>
> Generally easier to develop with Java, I think, and more maintainable
> and scalable.  Perl turns in to a big ball of ... something pretty
> quickly.  Java tends to be more organized.
>
> <http://en.wikipedia.org/wiki/Big_ball_of_mud>
>
>
>
> > Sorry for the long post
>
> > Thanks in advance for any suggestions.  Any reading material online or
> > print?  Server will be on linux.  Development on Windows/Linux/Mac
> > better?
>
> I think Windows/Ubuntu pretty much the same.  Check out the JEE features
> of a good IDE.  For example:
>
> <http://netbeans.org/kb/trails/java-ee.html>

From: Arne Vajhøj on
On 22-04-2010 21:39, mr_wu wrote:
> Can you kindly give me suggestions on using Java as the main component
> in website building? I'm especially interested in using it in backend
> as well as front end and incorporate hopefully AJAX.

Do you want to use Java both in frontend of the server side and backend
of the server side or both at client and server?

The first rules out AJAX unless you plan on using GWT.

The second is very standard Java EE.

> Webserver I'm
> familiar is apache, sql server will be postgres.
>
> My background: I've already built a long running successful site with
> mod_perl/apache/dbi as backend/front end with very little javascripts.
>
> I wish to build on my java skills. I have already built a few
> original desktop apps using j2se and in terms of lines of code my
> experience with java is higher than perl. But I have known perl much
> longer and I can build a website very fast in perl.
>
> I am looking for something equivalent to mod_perl with perhaps a
> templating feature built-in. I've looked into Tomcat but after
> reading their intro + a bit more i'm not clear whether they have what
> i want or even how it fits into apache if at all. Is glassfish an
> alternative to Tomcat? What about jboss?

Tomcat, Glassfish and JBoss are all servers. Tomcat only implements the
web part of Java EE while Glassfish and JBoss implements everything (and
actually Glassfish and JBoss usually comes with Tomcat embedded for the
web part).

All of them give you the option of:
- speaking HTTP directly with them
- speak HTTP with Apache HTTPD and have that speak AJP with them

> I've also written a tiny java applet on my mod_perl site and I notice
> that the applet takes its time to load the first time. It's because
> the browser has to load JVM the first time? I'm afraid that this type
> of problem will be present if I were to use java for interactivity
> i.e. AJAX. True or false? If I use JAVA just for server side (JSP?),
> I won't see the problem? Will it be more interactive than pure
> mod_perl site? Just easier to develop? More scalable?

Java applets do come with a small load time. But on a new system
it should not be that bad.

Server side Java obviously does not have this problem.

Server side Java is good for:
- large sites with lots of code
- sites with stateful clustering
- sites with transaction requirements
- sites that needs to integrate with web services, message queues and
ERP systems

> Thanks in advance for any suggestions. Any reading material online or
> print? Server will be on linux. Development on Windows/Linux/Mac
> better?

It should not matter that you develop on another platform than
the one you deploy at.

Arne
From: Tom Anderson on
On Mon, 26 Apr 2010, Arne Vajh?j wrote:

> On 22-04-2010 21:39, mr_wu wrote:
>> Can you kindly give me suggestions on using Java as the main component
>> in website building? I'm especially interested in using it in backend
>> as well as front end and incorporate hopefully AJAX.
>
> Do you want to use Java both in frontend of the server side and backend
> of the server side or both at client and server?
>
> The first rules out AJAX unless you plan on using GWT.

Or LiveConnect. No school like the old school!

https://jdk6.dev.java.net/plugin2/liveconnect/

>> Thanks in advance for any suggestions. Any reading material online or
>> print? Server will be on linux. Development on Windows/Linux/Mac
>> better?
>
> It should not matter that you develop on another platform than the one
> you deploy at.

As far as everything inside the WAR/EAR is concerned, this is true.
Although if there's a lot of money depending on your app, i'd certainly
suggest doing QA on the same platform.

However, things outside the WAR/EAR may not be so portable. In my apps
i've worked on, there is a colossal amount of what we generically term
'build scripts', which is the stuff that takes a fresh checkout from CVS
on a blank machine and turns it into a running system: that's everything
from compilation, management and implementation of configuration options,
EAR/WAR assembly, configuration file preparation, database schema
definition, data load, app server startup and monitoring (and shutdown),
and post-startup configuration and activation steps. And running unit
tests.

It's possible to do much or all of that portably - ant was made to do this
(more or less), and what you can't do in ant, you can do in java (perhaps
by writing an ant task). The only places where you're in real trouble are
when you're interacting with different interfaces (eg the start scripts
for Tomcat and JBoss, which take different parameters), but that's just a
matter of isolating that and writing implementations for each interface.

Still, in practice what we end up doing is writing trillions of lines of
bash script. The trouble is that ant is an utterly, utterly appalling
language, far more verbose and fiddly than shell script, and agonising if
you want to anything even a bit unusual. So we write shell script. And hey
presto, while we can run on any linux machine with only minor tweaking (eg
the xmlstarlet command-line XML processor is invoked as xmlstar on Debian,
but xml on CentOS), and on OS X with a bit more tweaking (install lots of
GNU utilities from MacPorts, change readlink to greadlink throughout,
etc), you're hosed if you want to run on Windows. Luckily, our development
landscape is almost always linux from development to production, with the
very occasional sidestep onto OS X for laptops, so the pain is minimal.

Conversely, if you developed on Windows, but deployed on unix, if you
wrote your build system in batch script, you'd be stuffed. Luckily, batch
script is so awful that you wouldn't do this; you'd even use ant in
preference, so you'd have a better shot at being portable from the start.

tom

--
hypnopomp rapist