User Tools

Site Tools


java_jetty_server_on_metaarray

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java_jetty_server_on_metaarray [2022/01/20 22:21] peteyboyjava_jetty_server_on_metaarray [2023/04/27 18:26] (current) – [Setting up a simple Java Jetty Server] fix typo, and sentence peteyboy
Line 1: Line 1:
-FIXME  this is under construction 
- 
  
 ====== Setting up a simple Java Jetty Server  ====== ====== Setting up a simple Java Jetty Server  ======
Line 9: Line 7:
 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't use any IDE, so it's a bit manual. You can find more detailed directions at the external project links below. 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't use any IDE, so it's a bit manual. You can find more detailed directions at the external project links below.
  
-There are lots of different java frameworks that center around using the Jetty server, including a few micro frameworksI am going to show an example using [[https://javalin.io | Javalin]], which is a microframework that is a lighter load that Spring Boot and other more mainline frameworks.  It has a simple tutorial that was used and modified a bit here to show you how to set up a Java Jetty server. To make things quick to set up, we'll use Maven (''mvn'').+There are lots of different java web frameworks that center around using the [[https://www.eclipse.org/jetty/ |Jetty]] server, including a few microframeworksThis page is going to go through an example using [[https://javalin.io | Javalin]], which is a microframework that has a lighter footprint and is easier to configure than Spring Boot and other more mainline frameworks.  It has a simple tutorial that was used and modified a bit here to show you how to set up a Java Jetty server. To make things quick to set up, we'll use Maven (''mvn'').
  
 ===== Create Project Space ===== ===== Create Project Space =====
  
-First, we'll create your maven-style project folder.+First, let'create your maven-style project folder.
   - 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
Line 21: Line 19:
 ===== 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'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", call it ''pom.xml''   - Create a new file in "myproject", call it ''pom.xml''
Line 79: Line 77:
       </plugin>       </plugin>
       <plugin>       <plugin>
 +        <!-- Exec plugin lets us run app directly from maven and not deal with classpaths -->
        <groupId>org.codehaus.mojo</groupId>        <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>          <artifactId>exec-maven-plugin</artifactId>
Line 90: Line 89:
          </executions>          </executions>
          <configuration>          <configuration>
 +           <!-- This is what exec will run as project main, *CHANGE THIS IF YOU ARE USING A DIFFERENT MAIN CLASS-->
            <mainClass>myproject.helloWorld</mainClass>            <mainClass>myproject.helloWorld</mainClass>
          </configuration>          </configuration>
Line 103: Line 103:
  
  - Using an editor again, create your hello world class file, in its proper folder for maven:  - Using an editor again, create your hello world class file, in its proper folder for maven:
-    - ''nano src/main/java/myproject/helloWorld.java+    - ''nano src/main/java/myproject/helloWorld.java''
     - paste in the following: <code java>     - paste in the following: <code java>
 package myproject; package myproject;
Line 134: Line 134:
   [INFO] Finished at: 2022-01-20T21:04:04Z   [INFO] Finished at: 2022-01-20T21:04:04Z
   [INFO] ------------------------------------------------------------------------   [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] ------------------< myproject.helloWorld:helloWorld >-------------------
 +  [INFO] Building helloWorld 1.0.0-SNAPSHOT
 +  [INFO] --------------------------------[ jar ]---------------------------------
 +  [INFO] 
 +  [INFO] --- exec-maven-plugin:3.0.0:java (default-cli) @ helloWorld ---
 +  [myproject.helloWorld.main()] INFO io.javalin.Javalin -  
 +         __                      __ _            __ __
 +        / /____ _ _   __ ____ _ / /(_)____      / // /
 +   __  / // __ `/| | / // __ `// // // __ \    / // /_
 +  / /_/ // /_/ / | |/ // /_/ // // // / / /   /__  __/
 +  \____/ \__,_/  |___/ \__,_//_//_//_/ /_/      /_/  
 +  
 +          https://javalin.io/documentation
 +  
 +  [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://localhost:32056/
 +  [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 //http://yourusername.yourSDFmetarraydomain.org:yourMetaArrayPort // and see it if works!
  
 +Press ''ctl-c'' to stop the server. 
  
 +The rest is up to your imagination!
  
java_jetty_server_on_metaarray.1642717263.txt.gz · Last modified: 2022/01/20 22:21 by peteyboy