我终于设法使用 OSGi、GWT 和可选的 eclipse 启动开发模式。该解决方案是在-noserver
GWT 开发模式的标志上,它在应用程序运行时不知道代码的变化,但它可以用于调试已编译的代码并接收异常跟踪。
我还设法在没有 eclipse 的情况下运行开发 shell,但如果您对这个解决方案不感兴趣,可以直接跳转到 eclipse 集成部分。
没有 Eclipse(只有异常,没有调试)
您需要了解以下信息:
- 你的来源在哪里 (
$SRC
)
- 你在哪里有你的 GWT 库(
$GWT_PATH
),特别是gwt-user.jar
和gwt-dev.jar
.
- (可选)您的 HTTP OSGi 服务器为应用程序提供服务的端口 (
$PORT
)。
- 应用程序的启动 url (
$URL
)
- 包含应用程序的 .gwt.xml 文件的包 (
$PACKAGE
)。
然后你需要运行:
java -cp $SRC:$GWT_PATH/gwt-user.jar:$GWT_PATH/gwt-dev.jar \
com.google.gwt.dev.DevMode -noserver -port $PORT \
-startupUrl $URL $PACKAGE
例如:
java -cp src/:lib/gwt-2.0.3/gwt-user.jar:lib/gwt-2.0.3/gwt-dev.jar \
com.google.gwt.dev.DevMode -noserver -port 8080 \
-startupUrl httplocalgui.html es.warp.samples.httplocalgui
最后,您只需要像往常一样部署您的应用程序,在我的示例中,我使用默认端口 8080 使用 pax-runner 和 pax-web 进行部署。
使用日食
- 打开项目的调试配置
- 转到服务器选项卡并取消选中“运行内置服务器”
- 转到属性选项卡并添加“
-port 8080
”(如果 8080 是您的 Web 容器使用的端口)。我认为没有内置服务器的这个参数仅用于创建开发模式生成以调用浏览器的url(或elipse用于生成可以复制并粘贴到浏览器地址栏中的url)。
- 部署您的应用程序。
- 从安装了 GWT 扩展的浏览器访问它(不要忘记添加
?gwt.codesvr=127.0.0.1:9997
)