java_jetty_server_on_metaarray
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
java_jetty_server_on_metaarray [2022/01/20 19:40] – created peteyboy | java_jetty_server_on_metaarray [2024/09/05 04:25] (current) – al” hc9 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | FIXME this is under construction | ||
- | |||
- | |||
====== Setting up a simple Java Jetty Server | ====== Setting up a simple Java Jetty Server | ||
- | |||
Java web programming includes a servlet architecture for making server applications in java and having the nitty gritty of managing the web server part of the application to a web server that functions as a servlet container. One popular embedded server for Java projects is [[https:// | Java web programming includes a servlet architecture for making server applications in java and having the nitty gritty of managing the web server part of the application to a web server that functions as a servlet container. One popular embedded server for Java projects is [[https:// | ||
Line 9: | Line 5: | ||
You can create a java server project that embeds Jetty and run it on [[metaarray|the MetaArray]] on your [[meta_port_allocation|assigned port]]. Below is a very simple example on how to get started with that. It doesn' | You can create a java server project that embeds Jetty and run it on [[metaarray|the MetaArray]] on your [[meta_port_allocation|assigned port]]. Below is a very simple example on how to get started with that. It doesn' | ||
- | There are lots of different java frameworks that center around using the Jetty server, including a few micro frameworks. I am going to show an example using [[https:// | + | There are lots of different java web frameworks that center around using the [[https:// |
===== Create Project Space ===== | ===== Create Project Space ===== | ||
- | First, | + | First, |
- Go to an appropriate project folder that you want to work in | - Go to an appropriate project folder that you want to work in | ||
- make the java source folder in the maven style | - make the java source folder in the maven style | ||
* '' | * '' | ||
- | |||
===== Create Project Object Model ===== | ===== Create Project Object Model ===== | ||
- | Next, we'll set up the POM file, which maven will use to pull all the dependencies for our framework and let us build it. | + | Next, let's set up the POM file, which maven will use to pull all the dependencies for our framework and let us build it. |
+ | |||
+ | - Create a new file in “myproject”, | ||
+ | * '' | ||
+ | - Paste in the following: < | ||
+ | < | ||
+ | <!-- model version - always 4.0.0 for Maven 2.x POMs --> | ||
+ | < | ||
+ | |||
+ | <!-- project coordinates - values which uniquely identify this project --> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | <!-- Exec plugin lets us run app directly from maven and not deal with classpaths --> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | - Save the file | ||
+ | |||
+ | ===== Add Your Java Code ===== | ||
+ | |||
+ | - Using an editor again, create your hello world class file, in its proper folder for maven: | ||
+ | - '' | ||
+ | - paste in the following: <code java> | ||
+ | package myproject; | ||
+ | |||
+ | import io.javalin.Javalin; | ||
+ | |||
+ | public class helloWorld { | ||
+ | private static int MY_JETTY_PORT= 8388; //replace 8388 with your port as explained in the wiki | ||
+ | |||
+ | public static void main(String[] args){ | ||
+ | Javalin app = Javalin.create().start(MY_JETTY_PORT); | ||
+ | app.get("/", | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | - move the cursor up and change the value of MY_JETTY_PORT to be your [[meta_port_allocation|Port on the MetaArray]] (that is, replace 8388 with your UID number). | ||
+ | - save the file | ||
+ | |||
+ | ===== Build Your Project ===== | ||
+ | |||
+ | Here we go. Back at the command line, type | ||
+ | mvn package | ||
+ | |||
+ | You will see a bunch of log info scroll by, but at the end, you should see something like this: | ||
+ | [INFO] ------------------------------------------------------------------------ | ||
+ | [INFO] BUILD SUCCESS | ||
+ | [INFO] ------------------------------------------------------------------------ | ||
+ | [INFO] Total time: 3.537 s | ||
+ | [INFO] Finished at: 2022-01-20T21: | ||
+ | [INFO] ------------------------------------------------------------------------ | ||
+ | ===== Run Your Server ===== | ||
+ | Now, let's run the server. We've set up an “exec goal” in the POM so we can run the resulting project from maven, like so: | ||
+ | mvn exec:java | ||
+ | | ||
+ | You should see something like this (hopefully any warnings you get are ignorable): | ||
+ | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations | ||
+ | WARNING: All illegal access operations will be denied in a future release | ||
+ | [INFO] Scanning for projects... | ||
+ | [INFO] | ||
+ | [INFO] ------------------< | ||
+ | [INFO] Building helloWorld 1.0.0-SNAPSHOT | ||
+ | [INFO] --------------------------------[ jar ]--------------------------------- | ||
+ | [INFO] | ||
+ | [INFO] --- exec-maven-plugin: | ||
+ | [myproject.helloWorld.main()] INFO io.javalin.Javalin - | ||
+ | | ||
+ | / /____ _ _ __ ____ _ / / | ||
+ | | ||
+ | / /_/ // /_/ / | |/ // /_/ // // // / / / / | ||
+ | \____/ \__, | ||
+ | | ||
+ | https:// | ||
+ | | ||
+ | [myproject.helloWorld.main()] INFO org.eclipse.jetty.util.log - Logging initialized @2496ms to org.eclipse.jetty.util.log.Slf4jLog | ||
+ | [myproject.helloWorld.main()] INFO io.javalin.Javalin - Starting Javalin ... | ||
+ | [myproject.helloWorld.main()] INFO io.javalin.Javalin - You are running Javalin 4.3.0 (released January 13, 2022). | ||
+ | [myproject.helloWorld.main()] INFO io.javalin.Javalin - Listening on http:// | ||
+ | [myproject.helloWorld.main()] INFO io.javalin.Javalin - Javalin started in 263ms \o/ | ||
+ | | ||
+ | If you get here, then your server is running! Now try it out: point your web browser to // | ||
+ | Press '' | ||
+ | The rest is up to your imagination! | ||
java_jetty_server_on_metaarray.1642707628.txt.gz · Last modified: 2022/01/20 19:40 by peteyboy