【问题标题】:Error when deploying Java app to Heroku using maven使用 maven 将 Java 应用程序部署到 Heroku 时出错
【发布时间】:2014-12-12 02:26:27
【问题描述】:

我有一个用 Eclipse 制作的 Java Web 应用程序,我正在使用 maven。它在本地主机(Apache Tomcat)上运行良好。当我尝试使用this guide 部署到 Heroku 时,出现以下错误(启用了调试)。这似乎很模糊,因为 google 几乎找不到任何东西。

[ERROR] 未能执行目标 com.heroku.sdk:heroku-maven-plugin:0.1.9:deploy-war (default-cli) on 项目之旅:无法部署应用程序:出现异常 调用远程服务:HTTP(403):服务器返回 HTTP 响应 代码:403 用于 URL:https://api.heroku.com/apps/tours/config-vars -> [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException: 未能执行目标 com.heroku.sdk:heroku-maven-plugin:0.1.9:deploy-war (default-cli) on 项目之旅:未能在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76) 在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:584) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:157) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 引起:org.apache.maven.plugin.MojoFailureException:失败 将应用程序部署在 com.heroku.sdk.maven.DeployWarMojo.execute(DeployWarMojo.java:58) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 19 更多原因:com.heroku.sdk.deploy.Curl$CurlException: 调用远程服务时出现异常:HTTP(403) 在 com.heroku.sdk.deploy.Curl.handleResponse(Curl.java:94) 在 com.heroku.sdk.deploy.Curl.get(Curl.java:22) 在 com.heroku.sdk.deploy.App.getConfigVars(App.java:139) 在 com.heroku.sdk.deploy.App.deploy(App.java:77) 在 com.heroku.sdk.deploy.App.deploy(App.java:93) 在 com.heroku.sdk.deploy.WarApp.deploy(WarApp.java:38) 在 com.heroku.sdk.maven.DeployWarMojo.execute(DeployWarMojo.java:54) ... 21 more Caused by: java.io.IOException: Server returned HTTP response 代码:403 用于 URL:https://api.heroku.com/apps/tours/config-vars 在 sun.net.www.protocol.http.HttpURLConnection.getInputStream0(未知 来源)在 sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知 来源)在 sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(未知 来源)在 com.heroku.sdk.deploy.Curl.handleResponse(Curl.java:90) ... 27 更多 [ERROR] [ERROR] [ERROR] 错误和可能的解决方案,请阅读以下文章: [错误] [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

这是我的 .pom 文件,如果有帮助的话:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>pl.xpam.sp</groupId>
  <artifactId>tours</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>tours Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
     <groupId>com.sun.faces</groupId>
     <artifactId>jsf-api</artifactId>
     <version>2.1.7</version>
  </dependency>
  <dependency>
     <groupId>com.sun.faces</groupId>
     <artifactId>jsf-impl</artifactId>
     <version>2.1.7</version>
  </dependency>
  <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.34</version>
  </dependency>
  </dependencies>
  <build>
  <pluginManagement>
   <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>          
        <configuration>
            <source>1.5</source>
            <target>1.5</target>
        </configuration>
    </plugin>
    <plugin>
              <groupId>com.heroku.sdk</groupId>
              <artifactId>heroku-maven-plugin</artifactId>
              <version>0.1.9</version>
              <configuration>
                <appName>tours</appName>
              </configuration>
            </plugin>
   </plugins>
  </pluginManagement>
 </build>
</project>

【问题讨论】:

  • HTTP 403 表明对 Heroku 服务的授权存在问题,这可能意味着身份验证令牌不正确或令牌与您尝试使用的应用程序不匹配部署。仔细检查 appName 是否实际设置为相应 Heroku 应用程序的名称。
  • 嗯嗯,一定是这样,我没有权限。当我从 CLI 使用 heroku 时,它已经获得了证书的授权,但是当从 eclipse 内部使用时,它似乎并非如此。如何从 Eclipse 调用身份验证?
  • 尝试为 HEROKU_API_KEY like in this answer 设置一个 Eclipse 环境变量(当然,使用不同的键名)。 HEROKU_API_KEY 的值应该是您运行heroku auth:token时打印的任何内容@
  • @joekutner 的回复应该是公认的答案。

标签: java eclipse maven heroku


【解决方案1】:

为 HEROKU_API_KEY like in this answer 设置一个 Eclipse 环境变量(当然,使用不同的键名)。 HEROKU_API_KEY 的值应该是运行 heroku auth:token 时打印的任何值

有问题的文档已经奇迹般地更新了对此的完整描述;)

【讨论】:

  • 我希望这行得通,但它没有。抛出完全相同的错误。
  • 您用于获取heroku auth:token 的帐户是否可以访问“旅游”应用程序?
  • 我设法使用带有 webapp-runner 的不同教程进行部署。所以是的,很确定它可以访问。
  • mvn heroku:deploy 任务是否从命令行工作?还是你得到相同的 403?
  • 如何从 cmd 使用 mvn?
猜你喜欢
  • 2015-07-02
  • 2015-09-22
  • 2017-09-14
  • 2015-12-09
  • 2020-04-06
  • 2016-04-08
  • 2019-06-25
  • 2020-04-06
相关资源
最近更新 更多