私はHerokuで自分のアプリケーションを展開することに問題があった後、可能な限り最も単純なアプリケーションを作成しました:index.jsp
とSomeServlet.java
の2つのファイルがあります。 index.jspのHeroku:最も単純なアプリケーションで、メインクラスが見つからないかロードされませんでした
TestDeployApp
--WEB-INF
--classes
--com
--web
--SomeServlet.class
--web.xml
--src
--com
--web
--SomeServlet.java
--target
--classes
--com
--web
--SomeServlet.class
--dependency
--webapp-runner.jar
--maven-archiver
--pom.properties
--gs-serving-web-content-0.1.0.jar
--gs-serving-web-content-0.1.0.jar.original
--index.jsp
--pom.xml
--Procfile
--TestDeployApp.war
:
<html>
<head></head>
<body>it's a jsp</body>
</html>
SomeServlet.java:
package com.web;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
public class SomeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
PrintWriter out = response.getWriter();
java.util.Date today = new java.util.Date();
out.println("<html><body><h1>" + today + "</h1></body></html");
}
}
私は、次のプロジェクト構造を持っていますweb.xmlの:
<?xml version="1.0" encoding="UTF-8" ?>
<web-app 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/web-app_2_4.xsd"
version="2.4">
<display-name>TestDeployApp</display-name>
<description>
This is a simple web application with a source code organization
based on the recommendations of the Application Developer's Guide.
</description>
<context-param>
<param-name>adminPlanet</param-name>
<param-value>Earth</param-value>
</context-param>
<servlet>
<servlet-name>SomeServlet</servlet-name>
<servlet-class>com.web.SomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SomeServlet</servlet-name>
<url-pattern>/SomeServlet.do</url-pattern>
</servlet-mapping>
</web-app>
のpom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>org.springframework</groupId>
<artifactId>gs-serving-web-content</artifactId>
<version>0.1.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<properties>
<java.version>1.7</java.version>
<start-class>com.web.SomeServlet</start-class>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</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.jsimone</groupId>
<artifactId>webapp-runner</artifactId>
<version>8.0.30.2</version>
<destFileName>webapp-runner.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<defaultGoal>install</defaultGoal>
</build>
</project>
Procfile:
web: java $JAVA_OPTS -cp target/classes/:target/dependency/* com.web.SomeServlet
それをすべてを展開する私は何をやっている:
git init
git add
git commit -m "first"
git push heroku master
heroku open
ブラウザウィンドウが開いた後、An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details.
エラーが表示されます。ログに
:
2018-02-10T20:16:50.864803+00:00 app[web.1]: Error: Could not find or load main class com.web.SomeServlet
2018-02-10T20:16:56.052981+00:00 heroku[web.1]: Starting process with command `java $JAVA_OPTS -cp target/classes/:target/dependency/* com.web.SomeServlet`
2018-02-10T20:16:58.391978+00:00 heroku[web.1]: Process exited with status 1
2018-02-10T20:16:58.419611+00:00 heroku[web.1]: State changed from starting to crashed
2018-02-10T20:16:58.099331+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2018-02-10T20:16:58.103410+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -Dfile.encoding=UTF-8
2018-02-10T20:16:58.297295+00:00 app[web.1]: Error: Could not find or load main class com.web.SomeServlet
2018-02-10T20:17:41.405484+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=testdeployapp-mine.herokuapp.com request_id=c217c572-e92a-409d-b8c8-27e57bb20013 fwd="178.217.106.173" dyno= connect= service= status=503 bytes= protocol=https
2018-02-10T20:17:42.829328+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=testdeployapp-mine.herokuapp.com request_id=21b0276c-ef8c-41b0-92c1-86c15d727aad fwd="178.217.106.173" dyno= connect= service= status=503 bytes= protocol=https
2018-02-10T20:17:58.784267+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=testdeployapp-mine.herokuapp.com request_id=a303e9da-e9d5-4d15-bd78-d3de2b3b3240 fwd="178.217.106.173" dyno= connect= service= status=503 bytes= protocol=https
2018-02-10T20:18:12.634882+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=testdeployapp-mine.herokuapp.com request_id=ce575c1b-d1ab-4f83-aaf7-a95cab4c7752 fwd="178.217.106.173" dyno= connect= service= status=503 bytes= protocol=https
また、私はその後、java -jar webapp-runner.jar application.war
コマンドを使用しようとしましたが、私はCMDでUnable to access jarfile webapp-runner.jar
エラーが発生します。
ご提案は大歓迎です。私はすべてのバリエーションを試したProcfile私は、何も動作するように見えることがあります。
ブラウザキャッシュ? –
シークレットタブで試してください –
一部のブラウザでは、開発者用ツールを開いているときに[キャッシュを無効にする]オプションを使用できます –