最初我们将应用程序服务器作为一个单独的服务器。使用适配器从worklight服务器与Application Server的通信。但目前我们正在将Application Server代码移动到Worklight的Server文件夹中。我们可以使用HTTPAdapter调用java类(简单java类而不是servlet)。但是使用HTTPAdapter很难与servlet(包含在服务器文件夹中)进行通信。请提供任何解决方案吗?
答案 0 :(得分:3)
如果我理解正确,您已在Worklight服务器文件夹中放置了一些servlet类。由于它们是Java类,因此适配器现在可以看到它们。但是,作为真正的servlet的servlet必须通过适当的配置部署到JEE servlet引擎。您可以将Servlet(在它们自己的WAR文件中)作为单独的JEE应用程序部署在与Worklight相同的服务器上,但是您无法将它们打包在 Worklight本身。
根据您的澄清编辑:
您希望合并servlet应用程序,该应用程序将通过worklight适配器访问的数据提供到与worklight服务器相同的服务器实例上。 Worklight Server实际上是一个部署到其中一个受支持的JEE服务器的JEE应用程序,通常是随Worklight提供的WebSphere Liberty,而Worklight Server实际上打包为WAR文件。您的数据提供程序servlet也将打包为WAR文件,您只需将该WAR部署到当前用于工作的Liberty服务器上。
如果您这样做是在Worklight Studio中进行开发,您可以通过查看“Worklight Development Server”找到相关文件夹。您可以将WAR放入apps文件夹中,如有必要,可以编辑server.xml以添加任何额外的配置:
WorklightServerConfig/servers/worklight/server.xml
第二次编辑试图再次解释。
Worklight项目代表您的应用程序,当您部署到Worklight Server时,创建一个WAR文件,让我们调用此MyApp.WAR,可以将其部署到WebSphere Application Server,在Worklight Studio中,您将自动获得WebSphere Liberty Profile 。 Liberty Profile的配置可以在Project Worklight Development Server中看到。关键的想法,你有一个应用服务器,Liberty Profile,你部署MyApp.WAR文件来创建我们通常称为Worklight服务器,它是为您的Worklight控制台提供服务的MyApp.WaR。该WAR文件源自项目的服务器文件夹的内容,该文件夹的名称有点误导,它不是“服务器”本身,而是项目特定的WAR信息。
现在另外你想要运行一个已经打包为WAR文件的Servlet,让我们调用这个Data.WAR。关键是您需要在Worklight Developmennt Server(Liberty Profile)上运行Data.WAR。您没有将此DATA.WAR文件包含到项目的服务器文件夹中,这将有效地将DATA.war放入MyApp.WAR中。相反,您需要将Data.WAR放在Worklight Developmennt Server的apps文件夹中并调整server.xml。
所以:步骤1.在开发服务器中运行Data.WAR。从浏览器验证您可以调用预期的servlet。请注意有效的URL。在验证之前,请勿尝试使用适配器。
步骤2.调整适配器以调用该URL。