我创建了一个动态Web应用程序,并希望将其与glassfish一起部署。我已成功将源代码构建到MyProject.jar。但是当我部署它时,显示以下错误:
远程故障:无法识别/home/davenlin/MyProject/build/MyProject.jar的存档类型
我的项目只是一个普通的Restful应用程序,而不是ejb应用程序,因此我不知道是否必须生成MyProject.war而不是MyProject.jar。
请帮我。谢谢 !
最佳答案
好的,因为我的评论非常不明确:
Web应用程序由应用程序服务器或Servlet容器处理。
两者都为您节省了大量工作,Web应用程序无法与之匹敌
桌面或独立的Java应用程序。当您将独立应用程序部署为jar文件时,然后由JVM执行时,Web应用程序
由容器(应用程序服务器/ Servlet容器)执行。
因此,这确实需要您的应用程序提供其他配置,并使归档文件本身具有不同的结构。
因此,即使您只是公开一些Web服务来构建一个宁静的应用程序,您的应用程序服务器也将为您做一些事情,例如
将请求转发到正确的类,将查询和后置参数转换为java-您自己的类可分别访问的对象,即您自己的对象,并将响应返回给客户端。
有趣的是:
Web存档中的其他文件通常是xml文件和与Web相关的文件,例如html,css,js。
因此,这不能将战争与jar区别开来,因为您还可以在jar中打包其他资源。
战争文件的基本但现在已过时的要求是文件包含
部署描述符(也是一个xml文件)
配置您的应用程序,它的上下文以及它使用的相对URL(更具体地讲:url-模式),但是由于此要求已经过时,因此有人可能仍然认为这种区分也是过时的。