前提・実現したいこと
JavaのフレームワークSpringBootを使って従業員を登録するアプリを作成しています。
新規登録画面に移ると以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
2021-01-15 09:50:47.456[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mteam.Member1Application [0;39m [2m:[0;39m Starting Member1Application using Java 11.0.7 on miyawakiseijinoMacBook-Air.local with PID 2843 (/Users/miyawakiseiji/Documents/workspace-spring-tool-suite-4-4.7.0.RELEASE/hello/src/main/java/com/example/hello/member-1/bin/main started by miyawakiseiji in /Users/miyawakiseiji/Documents/workspace-spring-tool-suite-4-4.7.0.RELEASE/hello/src/main/java/com/example/hello/member-1) [2m2021-01-15 09:50:47.458[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mteam.Member1Application [0;39m [2m:[0;39m No active profile set, falling back to default profiles: default [2m2021-01-15 09:50:47.532[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36m.e.DevToolsPropertyDefaultsPostProcessor[0;39m [2m:[0;39m Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable [2m2021-01-15 09:50:47.533[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36m.e.DevToolsPropertyDefaultsPostProcessor[0;39m [2m:[0;39m For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' [2m2021-01-15 09:50:48.150[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Bootstrapping Spring Data JPA repositories in DEFAULT mode. [2m2021-01-15 09:50:48.160[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Finished Spring Data repository scanning in 3 ms. Found 0 JPA repository interfaces. [2m2021-01-15 09:50:48.260[0;39m [33m WARN[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.m.s.mapper.ClassPathMapperScanner [0;39m [2m:[0;39m No MyBatis mapper was found in '[team]' package. Please check your configuration. [2m2021-01-15 09:50:48.602[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat initialized with port(s): 8080 (http) [2m2021-01-15 09:50:48.612[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.apache.catalina.core.StandardService [0;39m [2m:[0;39m Starting service [Tomcat] [2m2021-01-15 09:50:48.612[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36morg.apache.catalina.core.StandardEngine [0;39m [2m:[0;39m Starting Servlet engine: [Apache Tomcat/9.0.41] [2m2021-01-15 09:50:48.691[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.a.c.c.C.[Tomcat].[localhost].[/] [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext [2m2021-01-15 09:50:48.692[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 1157 ms [2m2021-01-15 09:50:48.811[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Starting... [2m2021-01-15 09:50:49.131[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mcom.zaxxer.hikari.HikariDataSource [0;39m [2m:[0;39m HikariPool-1 - Start completed. [2m2021-01-15 09:50:49.180[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.hibernate.jpa.internal.util.LogHelper [0;39m [2m:[0;39m HHH000204: Processing PersistenceUnitInfo [name: default] [2m2021-01-15 09:50:49.219[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36morg.hibernate.Version [0;39m [2m:[0;39m HHH000412: Hibernate ORM core version 5.4.25.Final [2m2021-01-15 09:50:49.311[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.hibernate.annotations.common.Version [0;39m [2m:[0;39m HCANN000001: Hibernate Commons Annotations {5.1.2.Final} [2m2021-01-15 09:50:49.397[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36morg.hibernate.dialect.Dialect [0;39m [2m:[0;39m HHH000400: Using dialect: org.hibernate.dialect.MySQL57Dialect [2m2021-01-15 09:50:49.529[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.h.e.t.j.p.i.JtaPlatformInitiator [0;39m [2m:[0;39m HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] [2m2021-01-15 09:50:49.539[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mj.LocalContainerEntityManagerFactoryBean[0;39m [2m:[0;39m Initialized JPA EntityManagerFactory for persistence unit 'default' [2m2021-01-15 09:50:49.595[0;39m [33m WARN[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mJpaBaseConfiguration$JpaWebConfiguration[0;39m [2m:[0;39m spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning [2m2021-01-15 09:50:49.710[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.s.concurrent.ThreadPoolTaskExecutor [0;39m [2m:[0;39m Initializing ExecutorService 'applicationTaskExecutor' [2m2021-01-15 09:50:49.760[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.b.a.w.s.WelcomePageHandlerMapping [0;39m [2m:[0;39m Adding welcome page template: index [2m2021-01-15 09:50:49.929[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.b.d.a.OptionalLiveReloadServer [0;39m [2m:[0;39m LiveReload server is running on port 35729 [2m2021-01-15 09:50:49.974[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat started on port(s): 8080 (http) with context path '' [2m2021-01-15 09:50:49.984[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[ restartedMain][0;39m [36mteam.Member1Application [0;39m [2m:[0;39m Started Member1Application in 2.776 seconds (JVM running for 8.649) [2m2021-01-15 09:51:07.119[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.a.c.c.C.[Tomcat].[localhost].[/] [0;39m [2m:[0;39m Initializing Spring DispatcherServlet 'dispatcherServlet' [2m2021-01-15 09:51:07.120[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.web.servlet.DispatcherServlet [0;39m [2m:[0;39m Initializing Servlet 'dispatcherServlet' [2m2021-01-15 09:51:07.121[0;39m [32m INFO[0;39m [35m2843[0;39m [2m---[0;39m [2m[nio-8080-exec-1][0;39m [36mo.s.web.servlet.DispatcherServlet [0;39m [2m:[0;39m Completed initialization in 1 ms
該当のソースコード
MemberController.java
1package controller; 2 3import java.util.List; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.stereotype.Controller; 7import org.springframework.ui.Model; 8import org.springframework.web.bind.annotation.GetMapping; 9import org.springframework.web.bind.annotation.ModelAttribute; 10import org.springframework.web.bind.annotation.PathVariable; 11import org.springframework.web.bind.annotation.PostMapping; 12import org.springframework.web.bind.annotation.RequestMapping; 13 14import domain.Member; 15import service.MemberService; 16 17@Controller 18@RequestMapping("/member") 19public class MemberController { 20 @Autowired 21 private MemberService memberService; 22 23 @GetMapping 24 public String index(Model model) { 25 List<Member> members = memberService.findAll(); 26 model.addAttribute("members", members); 27 return "index"; 28 } 29 30 @GetMapping("new") 31 public String newMember(Model model) { 32 return "new"; 33 } 34 35 @GetMapping("{id}/edit") 36 public String edit(@PathVariable Integer id, Model model) { 37 Member member = memberService.findOne(id); 38 model.addAttribute("member", member); 39 return "edit"; 40 } 41 42 @PostMapping 43 public String create(@ModelAttribute Member member) { 44 memberService.save(member); 45 return "redirect:/member"; 46 } 47 48 @PostMapping("{id}/edit") 49 public String update(@PathVariable Integer id, @ModelAttribute Member member) { 50 member.setId(id); 51 memberService.save(member); 52 return "redirect:/member"; 53 } 54 55 @PostMapping("{id}") 56 public String destroy(@PathVariable Integer id) { 57 memberService.delete(id); 58 return "redirect:/member"; 59 } 60 61 62}
該当のソースコード
new.html
1<!DOCTYPE html> 2<html xmlns:th=http://www.thymeleaf.org> 3<head> 4<meta charset="UTF-8"> 5<title>新規画面</title> 6 <h1>新規作成</h1> 7 <form th:action="@{/member}" th:method="post"> 8 <p> 9 名前<input type="text" name="name" /> 10 </p> 11 <p> 12 年齢<input type="text" name="age" /> 13 </p> 14 <input type="submit" value="作成" /> 15 </form> 16 <a class="btn btn-link" href="/member">一覧画面へ</a> 17</head> 18<body> 19 20</body> 21</html>
試したこと
Controllerに問題があると思っていましたが、htmlにも問題があると調べました。余計に混乱したので投稿させていただきました。
補足情報(FW/ツールのバージョンなど)
springbootでCRUD処理を実装しようと思っています。
コンソールにエラー(Exceptionのトレースログ)出てませんか?
ブラウザではなく、実行環境もしくはIDE
コンソールにエラーは出ていないです。
エラーが404 Not Found なので「新規登録画面」に対応するURLが正しく定義できていないように見えます。コントローラのソースコードを見る限り、「新規登録画面」は/member/newに定義されているようですが、実際に入力したURLはどのようなものでしょうか?
/member/new
と入力しました。
コンテキストパスも何か設定されてるんでは?
あとアクセスURLはhttpからフルで書いてください。
すいません。
http://localhost:8080/member/newです。
コンテキストパスは設定してないです。
URLは間違っていないように見えますね…。
ソースコードとエラーログを見てふと気になったのですが、パッケージは正しく構成されているでしょうか? SpringBootでは@SpringBootApplicationを付与したクラスが配置されているパッケージをトップレベルとして、その配下をコンポーネントスキャンの対象とします。
controller.MemberControllerは、@SpringBootApplicationを付与したクラスのパッケージの配下に正しく設置されていますか? そうでない場合は変更してみて問題が解消するか試してみることは可能でしょうか?
エラー発生してませんよね。
ほとんどINFOでWARNが2つ。
エラーは発生していないんですよ。
controller確認してみます。
controller及びその他のクラスを@SpringBootApplicationのパッケージ配下に設定しました。
回答していただいた方々ありがとうございました。
回答1件
あなたの回答
tips
プレビュー