Je suis curieux de savoir comment le débogueur IntelliJ utilise le domain.xml de mon serveur glassfish et rapporte une page Web lorsque cela est demandé. En particulier, j'ai un projet IntelliJ appelé blobGame qui utilise un serveur Glassfish qui ouvre une page Web appelée blobGame lorsque les artefacts .war et .ear sont déployés.Spécificités sur la façon dont le serveur Glassfish est exécuté avec le débogueur IntelliJ?
Premièrement, comment ces artefacts sont-ils déployés? Quand je les utiliser, je dois avoir l'URL du localhost soit http://localhost:60836/blobGame_war_exploded et localhost: 60836/blobGame NE FONCTIONNE PAS, même si je change dans la configuration de débogage - here is my debugger info
Pourquoi est-ce? Pourquoi l'URL doit-elle être /blobGame_war_exploded? Il ne peut même pas être /blobGame_ear_exploded, comme je le vois aussi dans le domain.xml.
Voici l'extrait de domain.xml pour mon domaine appelé « domain2 »:
<applications>
<application object-type="user" name="blobGame_ear_exploded" directory-deployed="true" location="file:/C:/Users/Kevin/EECS/blobGame/out/artifacts/blobGame_ear_exploded/">
<property name="archiveType" value="ear"></property>
<property name="isComposite" value="true"></property>
<property name="appLocation" value="file:/C:/Users/Kevin/EECS/blobGame/out/artifacts/blobGame_ear_exploded/"></property>
<property name="org.glassfish.ejb.container.application_unique_id" value="98074431158681600"></property>
<property name="defaultAppName" value="blobGame_ear_exploded"></property>
<module name="web.war">
<engine sniffer="ejb"></engine>
<engine sniffer="security"></engine>
<engine sniffer="weld"></engine>
<engine sniffer="web"></engine>
</module>
<engine sniffer="ear"></engine>
</application>
<application context-root="/blobGame_war_exploded" object-type="user" name="blobGame_war_exploded" directory-deployed="true" location="file:/C:/Users/Kevin/EECS/blobGame/out/artifacts/blobGame_war_exploded/">
<property name="archiveType" value="war"></property>
<property name="appLocation" value="file:/C:/Users/Kevin/EECS/blobGame/out/artifacts/blobGame_war_exploded/"></property>
<property name="org.glassfish.ejb.container.application_unique_id" value="98074431158812672"></property>
<property name="defaultAppName" value="blobGame_war_exploded"></property>
<module name="blobGame_war_exploded">
<engine sniffer="ejb"></engine>
<engine sniffer="security"></engine>
<engine sniffer="weld"></engine>
<engine sniffer="web"></engine>
</module>
</application>
</applications>
Deuxièmement, pourquoi le déploiement utilisent encore des objets précédents (comme je suppose qu'ils êtes-vous) lorsque je redéploie ou redémarre le serveur? Plus précisément, lorsque j'appuie sur redémarrer, j'obtiens exactement les mêmes fichiers HTML et javascript que je me suis retrouvé avec, et même si j'ai édité les fichiers html ou JS pendant le temps avant mon deuxième débogage. (J'ajoute alert ("test") dans le nouveau debug, mais il n'apparait pas dans le nouveau debug Quand j'accède à la page index.html de façon indépendante, l'alerte est affichée).
Voici le index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>keyBoardDemo</title>
</head>
<body>
<canvas id="canvas" width="800" height="600" style="border:1px solid #000000;"></canvas>
<p id="main"></p>
<script type="text/javascript" src=resources.js></script>
<script type="text/javascript" src=canvas.js></script>
<script type="text/javascript" src=keyboard.js></script>
<script type="text/javascript" src=packethandler.js></script>
<script type="text/javascript" src=player.js></script>
<script type="text/javascript" src=websocket.js></script>
</body>
</html>
et voici les canvas.js qu'il appelle:
alert("test 123"); //this is not called on the second redeployment!
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
Non, je fais toujours rafraîchir mon navigateur Chrome (la page Web que j'utilise) chaque fois que je redémarre le serveur ou redéployer ou des classes mise à jour, etc .. .. ça ne marche pas. Comme je l'ai dit, même après le redémarrage d'IntelliJ, il conserve mon déploiement inchangé même si les fichiers ont été modifiés. –
Veuillez soumettre votre nouveau Youtrack et joindre (en privé) votre dossier .idea. S'il vous plaît voir https://intellij-support.jetbrains.com/hc/en-us/articles/207241135 si vous n'êtes pas familier avec YouTrack. –