Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在AWS Beanstalk中运行WAR文件_Java_Amazon Web Services_Maven_Jersey_Amazon Elastic Beanstalk - Fatal编程技术网

Java 在AWS Beanstalk中运行WAR文件

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

我用java和jersey创建了一个Web服务器。我也使用MAVEN。我可以使用此命令从命令行运行项目

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
)。