[Java] Stellen Sie eine mit Eclipse + Maven + Ontology mit Heroku erstellte Webanwendung bereit

Einführung

Fassen Sie den Prozess der Bereitstellung einer mit Eclipse + Maven + Ontology erstellten Webanwendung auf Heroku zusammen In Bezug auf den Einsatz von Heroku habe ich auf die folgende Site verwiesen

Vier Dinge, auf die Heroku-Anfänger bei der Bereitstellung von von Java erstellten Webanwendungen mit GitHub-Integration gestoßen sind

Bitte beachten Sie, dass diese Methode nur ein Beispiel ist.

Der Quellcode ist unten https://github.com/YasufumiNakama/heroku-java-practice

Inhalt

Erstellen Sie eine Webanwendung mit Eclipse + Maven + Ontology

Erstellen eines Maven-Projekts

Ich werde die Installation von Eclipse usw. weglassen. Wählen Sie zuerst das Maven-Projekt aus Eclipse aus スクリーンショット 0031-08-09 2.09.19.png Geben Sie die Gruppen-ID und die Artefakt-ID ein スクリーンショット 0031-08-09 3.41.20.png Anschließend wird das Verzeichnis wie folgt konfiguriert. Schreiben Sie also den Code von hier aus スクリーンショット 0031-08-09 3.43.11.png

Vorbereitung der Ressourcen

Dieses Mal werde ich als Ressource eine Eulendatei verwenden, die die (Ramen-) Ontologie beschreibt (weil es eine gab, die bereits erstellt wurde und einfach und leicht war). スクリーンショット 0031-08-09 2.34.00.png Als einfaches Beispiel versuchen wir, eine Unterklasse der "Ramen" -Klasse abzurufen, indem wir eine Abfrage auslösen und in HTML ausgeben (es war wirklich interessant, etwas für die Benutzereingabe abzurufen). Da der Zweck jedoch darin besteht, es für Heroku bereitzustellen, werde ich es überspringen.

Vorbereitung von pom.xml

Da Ressourcen mithilfe der Ontologie ausgetauscht werden, werden Jena, Jersey und Gson zusätzlich zu dem für den Test verwendeten Junit als \ <Abhängigkeiten > verwendet.

Außerdem wird \ offiziell erklärt, also von hier Verwenden Sie den Code so wie er ist Weitere Informationen finden Sie im Quellcode, da wir andere Änderungen vorgenommen haben.

Web.xml vorbereiten

Erstellen Sie src / main / webapp / WEB-INF / web.xml und legen Sie das Trikot fest Details entsprechen dem Quellcode

Java-Quellcode

Da ich die Gruppen-ID auf com.heroku-java-Practice gesetzt habe, schreibe ich den Java-Quellcode unter src / main / java / com / heroku_java_practice (Test unter src / test / java / heroku_java_practice) Zuerst habe ich ein Programm namens ramen.java geschrieben, das Unterklassen der Klasse "ramen" aus einer Eulendatei abfragt und abruft, die die (Ramen-) Ontologie als Ressourcen beschreibt.

ramen.java


package com.heroku_java_practice;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.util.*;
import com.hp.hpl.jena.query.*;

public class ramen {
	
	public static String path = new File(".").getAbsoluteFile().getParent();
	public static String Resources = path + "/src/main/resources/";

    public static HashSet<String> get_ramen() throws FileNotFoundException {
        //Eulendatei lesen
        Model model = FileManager.get().loadModel(Resources + "owl/ramen.owl");
        // query
        String queryString = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" +
        		             "SELECT ?y\n" +
                			 "WHERE{\n" +
                             "?y rdfs:subClassOf <http://www.semanticweb.org/nakamayasufumi/ontologies/2019/5/untitled-ontology-30#Ramen>\n" +
                             "}";
        // result
        HashSet<String> result = new HashSet<>();
        //Laden von SPARQL-Abfragen
        Query query = QueryFactory.create(queryString);
        //Führen Sie die SPARQL-Abfrage aus
        QueryExecution qexec = QueryExecutionFactory.create(query, model);
        try {
            ResultSet results = qexec.execSelect();
            for (; results.hasNext(); ) {
                QuerySolution soln = results.nextSolution();
                Resource y = soln.getResource("y");
                result.add(y.toString().split("#")[y.toString().split("#").length-1]);
            }
        } finally {
            qexec.close();
        }
        return result;
    }
}

Lassen Sie uns nun mit einem Test prüfen, ob sich ramen.java wie erwartet verhält.

RamenTest.java


package heroku_java_practice;

import static org.junit.Assert.*;
import org.junit.Test;

import com.heroku_java_practice.*;

public class RamenTest {
	
	@Test
	public void test() {
		try {
			ramen status = new ramen();
			System.out.println(status.get_ramen());
		} catch(Exception e) {
			e.printStackTrace();
			fail(e.toString());
		}
	}
	
}

Wenn RamenTest.java im JUnit-Test ausgeführt wurde, war das Ausgabeergebnis wie folgt und es wurde bestätigt, dass es sich wie erwartet verhält. スクリーンショット 0031-08-09 3.57.28.png Zum Schluss schreiben wir main.java, um dieses Ausgabeergebnis im Web wiederzugeben. Trikot ist bequem

main.java


package com.heroku_java_practice;

import java.io.FileNotFoundException;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

@Path("webmethods")
public class main {

	@Path("/ramen")
	@GET
	@Produces(MediaType.APPLICATION_JSON)
	public String return_ramen() throws FileNotFoundException {
		ramen status = new ramen();
		Gson gson = new GsonBuilder().serializeNulls().create();
		String output = gson.toJson(status.get_ramen());
		return output;
	}

}

Lassen Sie uns auch das Verhalten von main.java überprüfen

RamenTest.java


package heroku_java_practice;

import static org.junit.Assert.*;
import org.junit.Test;

import com.heroku_java_practice.*;

public class RamenTest {
	
	/*
	@Test
	public void test() {
		try {
			ramen status = new ramen();
			System.out.println(status.get_ramen());
		} catch(Exception e) {
			e.printStackTrace();
			fail(e.toString());
		}
	}
	*/
	
	@Test
	public void test() {
		try {
			main status = new main();
			System.out.println(status.return_ramen());
		} catch(Exception e) {
			e.printStackTrace();
			fail(e.toString());
		}
	}
	
}
スクリーンショット 0031-08-09 4.06.25.png Klingt okay

HTML und JavaScript

Erstellen Sie HTML und JavaScript unter src / main / webapp /

index.html


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>project-ramen</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="index.js"></script>
</head>
<body>
    <h2>Ramen</h2>
    <table id="ramen"></table>
    <hr style="border-style:dashed">
</body>
</html>

index.js


const MethodURI =  "https://heroku-java-practice.herokuapp.com/webapi/webmethods/";

function gebi(id) {
    return document.getElementById(id);
}

window.onload = function(){
	var uri = MethodURI+'ramen';
	$.getJSON(uri,
	    function(data){
            for(var i=0; i<data.length; i++){
	            var table = gebi("ramen");
	            $(table).append("<tr></tr>").find("tr:last").append("<td>"+"・"+data[i]+"</td>")
	        }
        }
	);
}

Mit diesem js können Sie die Ausgabe in einem Tabellenformat anordnen In Bezug auf MethodURI ist es übrigens besser, den App-Namen auf der Heroku-Seite vor dem Schreiben zu sichern. In Bezug auf webapi / webmethods / wird dies in web.xml bzw. main.java festgelegt.

In Heroku bereitstellen

Create App Sichern Sie einen App-Namen für die Bereitstellung スクリーンショット 0031-08-09 4.22.02.png

Vor der Bereitstellung

Vor der Bereitstellung sind einige Dateien für die Bereitstellung erforderlich

Bereiten wir die obigen Dateien vor

Schieben Sie zu Github

Drücken Sie nach dem Hinzufügen der oben genannten Dateien den Quellcode, den Sie für Github bereitstellen möchten.

Bereitstellen

Hier werden wir versuchen, von Github aus bereitzustellen screencapture-dashboard-heroku-apps-heroku-java-practice-deploy-heroku-git-2019-08-09-04_33_57.png Klicken Sie auf das Github-Symbol スクリーンショット 0031-08-09 4.48.35.png Es ist in Ordnung, wenn Sie eine Verknüpfung mit dem Github-Repository herstellen, das Sie bereitstellen möchten スクリーンショット 0031-08-09 4.50.55.png Entweder die automatische Bereitstellung oder die manuelle Bereitstellung reicht aus. Klicken Sie zum Bereitstellen auf スクリーンショット 0031-08-09 6.16.45.png

Dateistruktur der bereitgestellten Anwendung

Sie können die Dateistruktur der bereitgestellten Anwendung wie folgt überprüfen.

$ heroku login
$ heroku run bash -a <appName>
$ pwd
/app
$ ls

Referenz: [Anzeigen von Dateien und Dateistrukturen in einer bereitgestellten Heroku-App](https://stackoverflow.com/questions/38924458/how-to-see-files-and-file-structure-on-a-deployed-heroku] -app)

abschließend

Derzeit ist die Bereitstellung der mit [Java] Eclipse + Maven + Ontology erstellten Webanwendung mit Heroku abgeschlossen. Wenn es noch etwas gibt, kann ich es hinzufügen (2019/8/9)

Recommended Posts

[Java] Stellen Sie eine mit Eclipse + Maven + Ontology mit Heroku erstellte Webanwendung bereit
Stellen Sie eine Java-Web-App für Heroku bereit
Stellen Sie ein Tomcat-basiertes Eclipse-Projekt für Heroku bereit
Stellen Sie Java-Webanwendungen mit maven in Azure bereit
[Tutorial] Eclipse herunterladen → Webanwendung mit Java ausführen (Plejaden)
So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit
Vier Dinge, auf die Heroku-Anfänger bei der Bereitstellung von von Java erstellten Webanwendungen mit GitHub gestoßen sind
Stellen Sie die Kriegsdatei auf Heroku bereit
Erstellen Sie eine Webanwendung mit Javalin
Automatische Bereitstellung von in Java entwickelten Webanwendungen mit Jenkins [Vorbereitung]
Erstellen Sie mit Dropwizard eine einfache Webanwendung
Erstellen Sie einen Webanwendungsserver (Java) auf VPS
Erstellen einer Entwicklungsumgebung für Java-Webanwendungen mit Docker für Mac Teil1
Automatische Bereitstellung von in Java entwickelten Webanwendungen mit Jenkins [Spring Boot App Edition]
Umfang des Versuchs, eine Java-Webanwendung unter Windows Server 2016 zu erstellen
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
[LINE BOT] Ich habe einen Ramen BOT mit Java (Maven) + Heroku + Spring Boot (1) gemacht.
[Java / Eclipse / Servlet / JSP / PostgreSQL] Framework der WEB-Anwendung mit Funktionen zum Posten / Speichern / Bearbeiten / Aktualisieren / Löschen von Daten
[AWS] So stellen Sie eine mit Rails 6 erstellte Webanwendung mithilfe von CircleCI (1) -Vorbereitung automatisch für ECR / ECS bereit [Containerbereitstellung]
So stellen Sie ein mit Java erstelltes System (Wicket-Spring-Boot) auf dem Campus-Server bereit
Java Repository von Eclipse mit Maven: Fehlendes Artefakt ~
Stellen Sie die Spring Boot-Anwendung für Elastic Beanstalk bereit
[Für Anfänger] Bis zum Erstellen einer Webanwendungsentwicklungsumgebung mit Java unter Mac OS
Senden Sie einen Job an AWS Batch mit Java (Eclipse)
[Tutorial] Eclipse herunterladen → Anwendung mit Java ausführen (Plejaden)
Führen Sie Maven unter Java 8 aus, während Sie unter Java 6 kompilieren und unter Java 11 testen
Erstellen Sie eine JAVA WEB App und probieren Sie OMC APM aus
Stellen Sie lokal entwickelte Java-Anwendungen mit Cloud Toolkit auf Alibaba Cloud ECS-Instanzen bereit
Die Geschichte der Erstellung einer Task-Management-Anwendung mit Swing, Java
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
Erstellung einer Java-Webanwendungsentwicklungsumgebung mit VS-Code (struts2)
Stellen Sie die von Spring Boot erstellte Anwendung für Heroku (öffentlich) bereit ①
So stellen Sie eine Kotlin (Java) -App auf AWS fargate bereit
Bis Sie eine Webanwendung mit Servlet / JSP erstellen (Teil 1)
So stellen Sie eine Java-Anwendung in Alibaba Cloud EDAS in Eclipse bereit
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ②
Socket-Kommunikation mit einem Webbrowser über Java und JavaScript ①
Java: Starten Sie WAS mit Docker und stellen Sie Ihre eigene Anwendung bereit
So stellen Sie die Rails-Anwendung in AWS bereit (Artikelzusammenfassung)
AWS Elastic Beanstalk # 1 mit Java von Grund auf neu Erstellen einer Java-Webanwendungsumgebung mit EB CLI-
Wie man mit Heroku einsetzt
Versuchen Sie gRPC mit Java, Maven
Mit Docker erstellte Webanwendung (1)
Erstellen Sie einen einfachen Webserver mit der Java-Standardbibliothek com.sun.net.httpserver
Vergleich der WEB-Anwendungsentwicklung mit Rails und Java Servlet + JSP
Erstellen wir eine Buchverwaltungs-Webanwendung mit Spring Boot part1
Lassen Sie uns mit Spring Boot part3 eine Webanwendung für die Buchverwaltung erstellen
Lassen Sie uns mit Spring Boot part2 eine Webanwendung für die Buchverwaltung erstellen
Automatische Bereitstellung von in Java entwickelten Webanwendungen mit Jenkins [Tomcat App Edition]
[Wahrscheinlich die einfachste] WEB-Anwendungsentwicklung mit Apache Tomcat + Java Servlet
[Spring Boot] Vorsichtsmaßnahmen beim Entwickeln einer Webanwendung mit Spring Boot und beim Ausführen eines Krieges auf einem unabhängigen Tomcat-Server
Erstellen Sie mit Docker CE für Windows eine Webanwendungsentwicklungsumgebung, die Java, MySQL und Redis verwendet
Das erste, was Sie tun müssen, wenn Sie mit Heroku auf GitHub mit Eclipse auf Java zufrieden sein möchten
# 1 [Anfänger] Erstellen Sie eine Webanwendung (Website) mit Eclipse aus Wissen 0. "Lassen Sie uns eine Umgebung zum Erstellen von Web-Apps erstellen"