0

下午所有,

这是我的背景:

我正在使用适用于 iPhone、Android 和 Mobile Web 的 App Envs 设置现有工作灯项目。

使用 Worklight Console 预览应用程序时,我仅从 iPhone 应用程序中得到上下文根错误。(我收到错误:服务器无法处理来自应用程序的请求...)

当我打开浏览器 JS 控制台时,我看到问题是应用程序请求了错误的上下文根。它正在访问不存在的 /worklight/ 上下文。

确实有效的上下文根如下:http://localhost:8080/apps/services/api/[APPNAME]/iphone/init

iphone 试图命中的上下文根目录:http://localhost:8080/worklight/apps/services/api/[APPNAME]/iphone/init

这是奇怪的部分。上下文根适用于 Android 和移动 Web 环境。只有 iPhone 环境存在上下文根问题。

所有三个环境都共享相同的 application-descriptor.xml 文件和相同的服务器。

下面是一些文件输出。

以下文件:

/server/conf/worklight.properties

publicWorkLightHostname=localhost
publicWorkLightProtocol=http
publicWorkLightPort=8080
publicWorkLightContext=/worklight/

/apps/[APPNAME]/application-descriptor.xml

<worklightServerRootURL>http://localhost:8080</worklightServerRootURL>

所以有几个问题。

1)设置上下文根时,客户端和服务器之间的关系是什么。上下文根是否必须在两者之间匹配?一个是主人,另一个只是奴隶,不需要设置吗?

2)(有点不相关)在调试这个问题时,我遇到了关于如何在 Eclipse 开发中“取消部署”服务器的零文档。(取消部署服务器就在 IBM 的文档中)当我更改服务器设置 (worklight.properties) 时,我需要知道如何重新部署服务器。我看到过手动破解战争的参考,只是在 IDE 中停止和启动服务器。

任何帮助是极大的赞赏。

4

1 回答 1

1

如果您使用的是上下文根,那么它必须同时存在于 worklight.properties 和 application-descriptor.xml 中。确保两者匹配,然后重新构建和部署,看看问题是否仍然存在。

当使用 Worklight 的开发版时,您的服务器基于在 Eclipse 中运行的 Jetty(它与您在 Eclipse 中安装的 Worklight Studio 插件捆绑在一起)。您不需要“取消部署”任何东西。只需更改 worklight.properties 和 application-descriptor.xml 并重新构建您的应用程序。更改将同时到达服务器和客户端。

但请注意,使用上下文根主要用于使用应用程序服务器(如 Tomcat、Liberty 或 WAS)时。

于 2013-03-12T18:40:32.860 回答