我工作的项目非常具体。我们将GWT与SAP后端一起使用。我们使用以下配置运行开发模式(作为程序参数;我使用IntelliJ IDEA直接运行项目)
-noserver -logLevel INFO -startupUrl http://server-url:8000/aaa -whitelist ^http[:][/][/]server-url[.]eu[:]8000/aaa com.company.project.main.Main
注意,我们没有使用本地服务器(-noserver
)。
熟悉超级开发模式之后,我明白它与GWT Web模式类似,即它编译JavaScript(可以指定要编译的文件夹),然后运行托管该脚本的代码服务器。 / p>
由于项目的细节,编译的JavaScript通过WebDav使用maven部署到远程服务器。因此,简单地将-workDir
指定为参数将不会在远程服务器上部署脚本。我们也不能(至少在目前)运行server-url
地址上的Java服务器。
在这种情况下我们可以使用超级模式吗?
答案 0 :(得分:9)
是的,你可以。
编辑2016-11-27:我构建了一个可以使用-launcherDir
样式的SuperDevMode的devserver,无需使用类似webpack的代理写入服务器:{ {3}}
编辑:还有一些问题。延迟绑定属性。建议使用SDM(因为GWT 2.7)是使用-launcherDir
,这意味着使用本地服务器。
SuperDevMode与DevMode的工作方式与-noserver
非常相似,这意味着您必须至少将应用程序部署到服务器一次。对于SuperDevMode,这意味着您必须使用xsiframe
链接器和devModeRedirectEnabled
属性设置为true
进行编译和部署。
然后在您的机器上运行SuperDevMode,如果尚未创建您的书签,请从远程服务器加载您的应用程序,然后单击开发模式书签。
这将在浏览器的sessionStorage
中存储内容,以便重新加载页面现在将从您机器上运行的SuperDevMode而不是远程服务器加载排列。
有关SuperDevMode如何工作的更多信息:https://github.com/tbroyer/gwt-devserver
答案 1 :(得分:0)
现在,我只看到一个可能的解决方案,即以某种方式在SAP服务器上运行gwt-codeserver.jar
(使用地址,例如http://server-url:8000/bbb
)并编写一个servlet,它将重定向所有请求http://server-url:8000/aaa
。但是,这不是很容易实现。 SAP服务器具有“棘手”的身份验证机制,用户首先看到登录页面,然后将其重定向到生成的会话特定URL。
非常欢迎其他想法。