【发布时间】:2017-06-03 14:43:00
【问题描述】:
我很好奇 IntelliJ 调试器如何使用我 glassfish 服务器的 domain.xml 并在请求时报告网页。
具体来说,我有一个名为 blobGame 的 IntelliJ 项目,它使用 Glassfish 服务器在部署工件 .war 和 .ear 时打开一个名为 blobGame 的网页。
首先,这些工件是如何部署的?当我部署它们时,我必须将 localhost 的 URL 设为 http://localhost:60836/blobGame_war_exploded,并且 localhost:60836/blobGame 不起作用,即使我在调试中更改它也是如此配置——here is my debugger info
这是为什么?为什么 url 必须是 /blobGame_war_exploded? 它甚至不能是 /blobGame_ear_exploded,正如我在 domain.xml 中看到的那样。
这是我的名为“domain2”的域的 domain.xml 的 sn-p:
<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>
其次,为什么当我重新部署或重新启动服务器时,部署仍然使用以前的工件(我假设它们是)?
具体来说,当我按下重新启动时,我得到的 HTML 和 javascript 文件与我之前留下的完全相同,即使我在第二次调试之前编辑了 html 或 JS 文件。 (我在新的调试中添加了 alert("test") ,但它没有出现在新的调试中。当我独立访问 index.html 页面时,警报确实出现了)。
这里是 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>
这是它调用的 canvas.js:
alert("test 123"); //this is not called on the second redeployment!
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
【问题讨论】:
标签: javascript java jakarta-ee intellij-idea glassfish