GWT2.8搭配Java9用-noserver启动Super Dev Mode找不到模块问题
问题根因
- 你访问
http://127.0.0.1:8080/MY_MODULE/时看不到JSP内容,说明自建Jetty的webapps对应目录下没有放置入口JSP文件,默认访问目录会优先加载index.html/index.jsp,缺少入口文件的情况下页面不会加载MY_MODULE.nocache.js,__gwt_activeModules变量自然为空,Dev Mode On也就无法识别到GWT模块。 - GWT 2.8的超级开发模式使用
-launcherDir输出到Jetty的webapps目录时,只会输出编译后的GWT JS资源,不会自动同步项目中的静态资源、JSP入口文件,需要你手动完成资源同步。 - 启动CodeServer时未指定
-startupUrl参数是触发启动警告的原因,不影响核心功能,属于可优化项。
解决步骤
- 补全自建Jetty的资源文件
把项目中作为入口的JSP文件拷贝到path_to_my_jetty/webapps/MY_MODULE/目录下,可重命名为index.jsp,也可以直接访问完整JSP路径:http://127.0.0.1:8080/MY_MODULE/你的入口文件名.jsp,确保访问该地址时页面正常加载,浏览器控制台无MY_MODULE.nocache.js加载失败的报错。 - 修正nocache.js的引入路径
检查JSP文件中MY_MODULE.nocache.js的引入路径,建议使用上下文绝对路径避免路径错误,示例如下:
<script type="text/javascript" src="${pageContext.request.contextPath}/MY_MODULE/MY_MODULE.nocache.js"></script>
- 优化CodeServer启动参数(可选)
在原有启动参数中添加-startupUrl http://127.0.0.1:8080/MY_MODULE/你的入口文件名.jsp,既可以消除启动警告,也支持IDEA启动后自动打开调试页面。 - 调试验证
先启动自建Jetty服务,再启动GWT CodeServer,访问入口JSP地址等待页面加载完成后,再点击Dev Mode On书签即可正常识别到GWT模块。
内容的提问来源于stack exchange,提问作者Alays
相关产品推荐
相关产品推荐

