Résumer le processus de déploiement d'une application Web créée avec Eclipse + Maven + Ontology sur Heroku Concernant le déploiement d'Heroku, je me suis référé au site suivant
Veuillez noter que cette méthode n'est qu'un exemple.
Le code source est ci-dessous https://github.com/YasufumiNakama/heroku-java-practice
Je vais omettre l'installation d'Eclipse, etc. Sélectionnez d'abord le projet Maven d'Eclipse Entrez l'ID de groupe et l'ID d'artefact Ensuite, le répertoire est configuré comme suit, alors écrivons le code à partir d'ici
Cette fois, comme ressources, j'utiliserai un fichier de chouette qui décrit l'ontologie (ramen) (car il y en avait une qui était déjà créée et c'était simple et facile). À titre d'exemple simple, essayons de récupérer une sous-classe de la classe "ramen" en lançant une requête et en la sortant en html (c'était vraiment intéressant de récupérer quelque chose pour l'entrée de l'utilisateur) Cependant, puisque le but est de le déployer sur Heroku, je vais l'ignorer)
Puisque les ressources sont échangées en utilisant l'ontologie, jena, jersey et gson sont utilisés comme \ <dépendances > en plus de junit utilisé pour le test.
En outre, \ <build > est officiellement expliqué, donc à partir de ici Utilisez le code tel quel Consultez le code source pour plus de détails, car nous avons apporté d'autres modifications.
Créez src / main / webapp / WEB-INF / web.xml et définissez le jersey Les détails sont selon le code source
Depuis que j'ai défini l'ID de groupe sur com.heroku-java-practice, j'écrirai le code source java sous src / main / java / com / heroku_java_practice (le test est sous src / test / java / heroku_java_practice) Tout d'abord, j'ai écrit un programme appelé ramen.java qui interroge et récupère les sous-classes de la classe "ramen" à partir d'un fichier owl qui décrit l'ontologie (ramen) comme des ressources.
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 {
//Lire le fichier chouette
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<>();
//Chargement des requêtes SPARQL
Query query = QueryFactory.create(queryString);
//Exécuter la requête SPARQL
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;
}
}
Maintenant, vérifions avec test si ramen.java se comporte comme prévu.
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());
}
}
}
Lorsque RamenTest.java a été exécuté dans le test JUnit, le résultat de sortie était le suivant et il a été confirmé qu'il se comportait comme prévu. Enfin, écrivons main.java pour refléter ce résultat de sortie sur le Web. le maillot est pratique
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;
}
}
Vérifions également le comportement de main.java
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());
}
}
}
Ça sonne bien
Créez du HTML et du JavaScript sous 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>")
}
}
);
}
Avec ce js, vous pouvez organiser la sortie dans un format de tableau À propos, concernant MethodURI, il est préférable de sécuriser le nom de l'application côté Heroku à l'avance avant d'écrire. En ce qui concerne webapi / webmethods /, ce sera celui défini respectivement dans web.xml et main.java.
Create App Sécurisez un nom d'application à déployer
Avant le déploiement, certains fichiers sont nécessaires pour le déploiement
Préparons les fichiers ci-dessus
Après avoir ajouté les fichiers ci-dessus, transmettez le code source que vous souhaitez déployer sur Github.
Ici, nous allons essayer de déployer depuis Github Cliquez sur l'icône Github C'est OK si vous créez un lien avec le référentiel Github que vous souhaitez déployer Les déploiements automatiques ou le déploiement manuel feront l'affaire, alors cliquez pour déployer
Vous pouvez vérifier la structure des fichiers de l'application déployée comme suit.
$ heroku login
$ heroku run bash -a <appName>
$ pwd
/app
$ ls
Référence: [Comment voir les fichiers et la structure des fichiers sur une application Heroku déployée](https://stackoverflow.com/questions/38924458/how-to-see-files-and-file-structure-on-a-deployed-heroku] -app)
Avec ce qui précède, pour le moment, le déploiement de l'application Web créée avec [Java] Eclipse + Maven + Ontologie avec Heroku est terminé. S'il y a autre chose, je peux l'ajouter (2019/8/9)
Recommended Posts