Java 在AWS Beanstalk中运行WAR文件
我用java和jersey创建了一个Web服务器。我也使用MAVEN。我可以使用此命令从命令行运行项目Java 在AWS Beanstalk中运行WAR文件,java,amazon-web-services,maven,jersey,amazon-elastic-beanstalk,Java,Amazon Web Services,Maven,Jersey,Amazon Elastic Beanstalk,我用java和jersey创建了一个Web服务器。我也使用MAVEN。我可以使用此命令从命令行运行项目 mvn clean verify org.codehaus.cargo:cargo-maven2-plugin:run 我的问题是,我想将该项目作为java应用程序部署在AmazonAWS弹性Beanstalk中。我必须上传那里的代码,亚马逊将用这个命令执行它 java -jar mywar.war 如果我试图用这个命令在本地运行我的项目,我会得到这个错误 no main manifest
mvn clean verify org.codehaus.cargo:cargo-maven2-plugin:run
我的问题是,我想将该项目作为java应用程序部署在AmazonAWS弹性Beanstalk中。我必须上传那里的代码,亚马逊将用这个命令执行它
java -jar mywar.war
如果我试图用这个命令在本地运行我的项目,我会得到这个错误
no main manifest attribute, in project.war
所以我认为这就是为什么这个项目在Beanstalk中不能正常运行的原因。是否可以使用此java命令运行我的项目,或者我必须使用mvn命令?这是因为您的maven正在使用cargo插件。如果希望像普通java应用程序一样从命令行运行它,则需要启动Jetty或Tomcat,或者在嵌入式模式下使用的任何东西。下面是一个描述如何从应用程序启动Jetty的链接
Beanstalk似乎提供了此功能。尝试打开生成的war文件中的清单文件,很可能它缺少主类信息。清单文件的示例,包含如下内容:
Manifest-Version: 1.0
Main-Class: org.xxx.xxx.
您可以尝试在pom文件下的maven插件配置中添加主文件信息。大概是这样的:
<plugin>
...
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
...
</plugin>
...
真的
完全合格
...
在类似tomcat的web容器中部署您的war。war是web存档,它不是fr命令行。使用它可以很容易地创建war文件,这些文件可以部署在常规web容器中,也可以独立启动,使用上面发布的命令(java-jar mywar.war
)。