前提・実現したいこと
お忙しい中すみません
javaでwebアプリケーションを作っており、公開するためにドキュメント見ながらやってるのですがheroku local web
でエラーが出ます
heroku local webを成功させたいです。
そして一番最初に表示させるページを指定するにはどうしたらいいのでしょうか?
ここではTopPageIndesxServletを最初のサーブレットにしたいです。
初心者で変な質問でしたらすみません。
どうか宜しくお願いします。
発生している問題・エラーメッセージ
エラー: メイン・クラスTopPageIndesxServletを検出およびロードできませんでした 原因: java.lang.ClassNotFoundException: TopPageIndesxServlet [DONE] Killing all processes with signal SIGINT 16:53:14 web.1 Exited with exit code null となります。
###Procfile
web: java $JAVA_OPTS -cp target/classes:target/dependency/* TopPageIndesxServlet
TopPageIndesxServletの部分が違いのだと思います。
ここのコードは最初に表示させたいページをサーブレットに入れるのかと自分は思っているのですが見当違い
でしたらすみません。
メインクラスと書いてあるのでmainメソッドがないといけないのでしょうか?
###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>jp.example</groupId> <artifactId>music_system</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals><goal>copy-dependencies</goal></goals> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.13.final</version> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>javax.servlet.jsp.jstl-api</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.0</version> </dependency> </dependencies> </project>
mvn clean installまでは成功しまして個人的にはpom.xmlは大丈夫だと思っているのですが、、、
TopPageIndesxServlet
package controllers.toppage; import java.io.IOException; import java.util.List; import javax.persistence.EntityManager; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import models.MusicSite; import utils.DBUtil; /** * Servlet implementation class TopPageIndesxServlet */ @WebServlet("/toppage/index") public class TopPageIndesxServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public TopPageIndesxServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub EntityManager em=DBUtil.createEntityManager(); List <MusicSite> musicSites=em.createNamedQuery("getAllMusicSites",MusicSite.class) .getResultList(); em.close(); request.setAttribute("musicSites", musicSites); RequestDispatcher rd=request.getRequestDispatcher("/WEB-INF/views/toppage/index.jsp"); rd.forward(request, response); } }
試したこと
最初はTopPageIndesxServletのところを/music_system/src/controllers/toppage/TopPageIndesxServlet.javaとパッケージなども含めて指定しました。
ドキュメントを見たのですが僕は見つけられませんでした。
補足情報(FW/ツールのバージョンなど)
java8
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/22 09:33