我用java和jersey创建了一个Web服务器。我也用MAVEN。我可以使用此命令从命令行运行项目
mvn clean verify org.codehaus.cargo:cargo-maven2-plugin:run
我的问题是我想在Amazon aws Elastic Beanstalk中将项目部署为java应用程序。我必须在那里上传代码,亚马逊将使用此命令执行它
java -jar mywar.war
如果我尝试使用此命令在本地运行我的项目,则会出现此错误
no main manifest attribute, in project.war
所以我认为这就是为什么项目在Beanstalk中运行不正常的原因。是否可以使用此java命令运行我的项目,或者我必须使用mvn命令?
答案 0 :(得分:0)
这是因为你的专家正在使用货物插件。如果要像常规Java应用程序那样从命令行运行它,则需要启动Jetty或Tomcat或者在嵌入模式下使用的任何内容。这是一个描述如何从应用程序启动Jetty的链接。
http://www.eclipse.org/jetty/documentation/9.4.x/embedded-examples.html
答案 1 :(得分:0)
Beanstalk似乎提供了Tomcat。
答案 2 :(得分:0)
尝试打开您生成的war文件中的清单文件,很可能它缺少Main-Classinformation。包含以下内容的清单文件示例:
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>