我创建了一个带有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: /apps/services/api/SampleHybrid/common/query</p><hr /><address>WebSphere Application Server at 127.0.0.1 port 9080</address></body></html>
答案 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文件夹中找到。