0

我创建了一个带有 SQL 适配器和混合工作灯应用程序的示例项目。该应用程序是一个简单的登录表单,它接受用户 ID 和密码,并使用 SQL 适配器根据存储在数据库中的值验证它们。

现在,当我在安装在工作灯的 eclispe 插件中的默认工作灯服务器上测试此应用程序时,它工作正常。

但是,当我在企业 Worklight 服务器上安装 SQL 适配器和 Worklight 应用程序并对其进行测试时,我收到以下错误:

NetworkError: 404 Not Found - http://[localhost:9080]/apps/services/api/SampleHybrid/common/query

我通过 Firebug 获取的上述错误。

SampleHybrid是 Worklight 混合应用程序的名称。 SampleHybridAdapter是 SQL 适配器的名称。

服务器的响应是:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>CWWKT0018E: The application or context root for this request has not been found: &#047;apps&#047;services&#047;api&#047;SampleHybrid&#047;common&#047;query</p><h‌​r /><address>WebSphere Application Server at 127.0.0.1 port 9080</address></body></html>
4

1 回答 1

2

您提到您已经转移到在应用程序服务器上运行 Worklight - 这需要使用上下文根。在您提供的 404 错误中,我没有看到上下文根。

对服务器的请求应该如下所示:http://[localhost:9080]/yourContext/apps/services/api/SampleHybrid/common/query 因为缺少上下文根(在本例中为“yourContext”),您会收到 404 错误,因为应用程序试图到达一个不存在的位置。

上下文根值在 application-descriptor.xml 和 worklight.properties 中设置。

yourProject\apps\yourApp\application-descriptor.xml

  • 更改worklightServerRootURL属性的值以包含您的上下文根。它应该看起来像这样http://your-host-name-here:port/yourContext

yourProject\apps\server\conf\worklight.properties

  • 将您的上下文根设置为publicWorkLightContext属性的值(还要确保取消注释它)

完成上述操作后,您需要将 .war 文件重新部署到您的应用服务器。.war 文件可以在 Worklight 项目的 bin 文件夹中找到。

于 2013-04-30T09:39:43.283 回答