有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

部署在heroku上的Java Maven项目无法启动并崩溃。应用程序错误H10

请帮帮我,我对maven和heroku都是新手。早些时候,我部署了一个简单的JavaWeb项目,在成功运行了1到2次之后,它得到了java。lang.NoSuchMethodError错误。然后我在maven重新开发了我的项目,再次面临这个问题

2020-05-14T23:33:28.846910+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2020-05-14T23:33:28.848763+00:00 app[web.1]: Error: Unable to access jarfile target/dependency/webapp-runner.jar
2020-05-14T23:36:21.771287+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/insurance/resource/customerdetails6?lname=Bond" host=aqueous-basin-26959.herokuapp.com request_id=2854741f-8cac-41dd-936b-56efa2750364 fwd="157.41.74.141" dyno= connect= service= status=503 bytes= protocol=https

我的项目是pom。xml如下所示:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>muleInsuranceDemo</groupId>
  <artifactId>muleInsuranceDemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>muleInsuranceDemo</name>
  <description>muleInsuranceDemo-maven converted</description>

  <dependencies>
    <!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.12.3</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
    <!-- <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0.1</version>
    </dependency> -->
    <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-server -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.19.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-servlet -->
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.19.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-server -->
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-server</artifactId>
        <version>3.0.0-M1</version>
    </dependency>
     <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.8.2</version>
          <scope>test</scope>
      </dependency>

       <!-- <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-server</artifactId>
          <version>1.8</version>
      </dependency> -->
      <!-- https://mvnrepository.com/artifact/asm/asm -->
    <dependency>
        <groupId>asm</groupId>
        <artifactId>asm</artifactId>
        <version>3.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.glassfish.hk2.external/jakarta.inject -->
    <dependency>
        <groupId>org.glassfish.hk2.external</groupId>
        <artifactId>jakarta.inject</artifactId>
        <version>2.6.1</version>
    </dependency>

</dependencies>

  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
            <warSourceDirectory>src/main/webapp</warSourceDirectory>
             <warName>sumitrademoinsurance</warName>
                    <failOnMissingWebXml>false</failOnMissingWebXml>

        </configuration>
      </plugin>
      <plugin>
        <groupId>com.heroku.sdk</groupId>
        <artifactId>heroku-maven-plugin</artifactId>
        <version>3.0.2</version>
        <configuration>
            <appName>aqueous-basin-26959</appName>
            <processTypes>
                <web>java $JAVA_OPTS -cp target/classes:target/dependency/* Main</web>
            </processTypes>
        </configuration>
      </plugin>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.3</version>
          <executions>
              <execution>
                  <phase>package</phase>
                  <goals><goal>copy</goal></goals>
                  <configuration>
                      <artifactItems>
                          <artifactItem>
                              <groupId>com.github.heroku</groupId>
                              <artifactId>webapp-runner</artifactId>
                              <version>${webapp-runner.version</version>
                              <destFileName>webapp-runner.jar</destFileName>
                          </artifactItem>
                      </artifactItems>
                  </configuration>
              </execution>
          </executions>
      </plugin>
    </plugins>
     <finalName>sumitrademoinsurance</finalName>

  </build>
</project>

网络。xml是:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>muleInsuranceDemo</display-name>

<servlet>
    <servlet-name>jersey-servlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
       <init-param>
          <param-name>com.sun.jersey.config.property.packages</param-name> 
          <param-value>com.sumitra.mongo</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
   <servlet-name>jersey-servlet</servlet-name>
   <url-pattern>/*</url-pattern>
</servlet-mapping>

</web-app>

共 (1) 个答案

  1. # 1 楼答案

    你的<artifactItem>有错误的groupIdversion。它应该更像这样:

    <artifactItem>
        <groupId>com.heroku</groupId>
        <artifactId>webapp-runner</artifactId>
        <version>9.0.30.0</version>
        <destFileName>webapp-runner.jar</destFileName>
    </artifactItem>
    

    解决这个问题可能已经解决了。如果没有,请告诉我