Couple Apache Question
Thank y'all for taking the time to read this, really do appreciate it. I'm looking into internship roles (within the Cyber Security Field), and I came across this role where it is really wanting understanding of Apache coming into the role. They mentioned specifically that they wanted an applicant to be knowledgeable in both Apache Tomcat and Apache Ant. After seeing that Tomcat, and correct me if I'm wrong is a variant of Apache for a specific need, and Apache Ant is a tool to be used within Apache. My question is how does one know the difference between tools/distros of Apache, & is it possible to deploy and an Apache instance within a VM, and if so help on how to do it is appreciated, but links to outside resources would help a lot. Below is the role, and thanks again for your time.
Role: https://careers.rtx.com/global/en/job/01735782/Intern-Business-Systems-and-Transformation-Onsite-AZ
3 Replies
Hey!
I think you're getting (understandably) tripped up between Apache Foundation and Apache Server. Apache Foundation is a not-for-profit that organizes and financially supports a bunch of extremely popular open source projects. The projects that are supported by the apache foundation are prefixed with the Apache name, and are sometimes written by the same group of devs (maybe always, I'm not sure about that part). These projects span a huge range of technologies, and many have developed great reputations for being extremely solid pieces of tech. Here's a handy list of all their projects.
One of their most popular such projects is the Apache Server (which is, you guessed it, a server runtime. Kinda like Node, but for Java). There's another (completely unrelated) project called Apache Tomcat which is also a server, but it's written in java and is designed to run as part of the Enterprise Java stack, which is about as fun as it sounds. Yet another project is Apache Ant, which is an alternative build system compared to Maven. It's vaguely like a java version of esbuild (I think... I've admittedly never used it). Another competitor in that ecosystem is gradle, if you want yet another thing to look into ;)
is it possible to deploy and an Apache instance within a VM, and if so help on how to do it is appreciatedA docker container isn't quite the same as a VM, but I think it's probably what you want in order to get started easily. Assuming you've got docker installed on your computer (if not, you should google how to install it), you can start tomcat with
docker run -it --rm -p 8888:8080 tomcat:9.0
(source), and then if you open http://localhost:8888 in your browser you should see the tomcat dashboard
Actually, I just tried that (it's been a while since I've used tomcat) and it turns out for "security reasons" they made it a little more annoying to get the admin dashboard going. Turns out after you start the container you've gotta run a command inside the container to enable the dashboard. So to make that work you've actually gotta:
to start the container, and then to actually enable the dashboard you have to deploy the dashboard. There are prob a couple ways to do it, but this is one:
More info about this extra wrinkle here. Understanding the thinking behind why they chose to make this change might be good prep for an interview ;)The world of enterprise java java EE jakarta EE frameworks is a bit of a tangle to figure out. I think the wiki page on servlets is a very good place to start getting an understanding of where tomcat fits into the bigger technical picture
Jakarta Servlet
A Jakarta Servlet, formerly Java Servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web applications on web servers and thus qualify as a server-side servlet web API. Such web servlets are the Java counter...
Awesome thank you so much, really appreciate it ☺️