404在Enterprise Worklight服务器上运行worklight混合应用程序时出错

时间:2013-04-30 09:27:06

标签: ibm-mobilefirst application-server contextroot

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

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

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

  

NetworkError:404 Not Found -   HTTP:// [本地主机:9080] /应用/服务/ API / SampleHybrid /普通/查询

我通过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>

1 个答案:

答案 0 :(得分:2)

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

对服务器的请求应该如下所示:http://[localhost:9080]/yourContext/apps/services/api/SampleHybrid/common/query 由于缺少上下文根(在本例中为“yourContext”),因此应用程序尝试访问不存在的位置时会出现404错误。

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

<强> yourProject \ APPS \ yourApp \应用descriptor.xml

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

yourProject \ apps \ server \ conf \ worklight.properties

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

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