質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

4541閲覧

Eclipse (STS4)でJavaのデバッグで「ソースが見つかりませんでした」のエラーを解決したい

milkcoffee

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2022/05/25 18:55

実現したいこと

Eclipse (STS4)でJavaのデバッグをする際に、「ソースが見つかりませんでした」とデバッグが停止してしまいます。
このエラーを防ぐにはどうしたらいいか教えてください。

発生している問題・エラーメッセージ

以下の部分にブレークポイントを置きデバッグをして、updateメソッドを通り過ぎると、エラーが出てきます。
その際に、「RootController$$FastClassBySpringCGLIB$$d14b0faf.inv」タブが出てきて、以下が表示されます。

@PutMapping("{id}") public ModelAndView update(@PathVariable Long id, @ModelAttribute InquiryForm inquiryform) { inquiryform.setId(id); * repository.save(inquiryform); return new ModelAndView("redirect:" + buildAdminRedirectUrl("/list")); }

・ソースが見つかりませんでした、のメッセージ
・「ソース・ルックバック・パスの編集」ボタン
- (クリックするとパスの編集画面が出てきます)

編集画面には

デフォルト

app

spring-boot-starter-thymeleaf
spring-boot-starter
spring-boot-starter-logging

などが出てきます。
(appはjavaアプリの名前です)

該当のソースコード

Java

1package com.example.demo.controllers; 2 3import org.hibernate.cache.spi.support.AbstractReadWriteAccess.Item; 4import org.springframework.beans.factory.annotation.Autowired; 5import org.springframework.stereotype.Controller; 6import org.springframework.ui.Model; 7import org.springframework.validation.BindingResult; 8import org.springframework.validation.annotation.Validated; 9import org.springframework.web.bind.annotation.GetMapping; 10import org.springframework.web.bind.annotation.PutMapping; 11import org.springframework.web.bind.annotation.ModelAttribute; 12import org.springframework.web.bind.annotation.PathVariable; 13import org.springframework.web.bind.annotation.PostMapping; 14import org.springframework.web.bind.annotation.RequestMapping; 15import org.springframework.web.bind.annotation.DeleteMapping; 16 17import com.example.demo.models.InquiryForm; 18import com.example.demo.repositries.InquiryRepository; 19import ch.qos.logback.core.joran.spi.EventPlayer; 20import java.util.List; 21import javax.transaction.Transactional; 22import com.example.demo.controllers.RedirectUrlProperties; 23import lombok.RequiredArgsConstructor; 24 25import org.springframework.web.util.UriComponentsBuilder; 26import org.springframework.web.servlet.ModelAndView; 27 28 29 30@Controller 31@RequestMapping("/") 32@Transactional //roll back at exception handling 33@RequiredArgsConstructor //making constructor that taking initialized arguments for final field 34public class RootController { 35 36 @Autowired 37 InquiryRepository repository; 38 39 public String buildAdminRedirectUrl(String url) { 40 return UriComponentsBuilder.fromUriString(redirectUrlProperties.getUrl() + url).toUriString(); 41 } 42 43 @GetMapping 44 public String index() { 45 return "root/index"; 46 } 47 48 @GetMapping("/list") //applied at viewing /list 49 public String inquiryList(Model model) { 50 List<InquiryForm> items = repository.findAll(); 51 model.addAttribute("items", items); 52 return "root/list"; 53 } 54 55 @GetMapping("/form") 56 public String form(InquiryForm inquiryForm) { 57 return "root/form"; 58 } 59 60 @PostMapping("/form") //applied at viewing /form 61 public String form(@Validated InquiryForm inquiryForm, BindingResult bindingResult, Model model) { 62 if (bindingResult.hasErrors()) { 63 return "root/form"; 64 } 65 repository.save(inquiryForm); 66 model.addAttribute("message", "お問い合わせを受け付けました。"); 67 return "root/form"; 68 } 69 70 @GetMapping("{id}/edit") //applied at id# 71 public String edit(@PathVariable Long id, Model model) { 72 InquiryForm inquiryform = repository.findById(id).get(); 73 model.addAttribute("inquiryform", inquiryform); 74 return "root/edit"; 75 } 76 77 // @Data annotation for InquiryForm class makes getter and setter 78 // STS says setId is undefined, but it works fine 79 @PutMapping("{id}") 80 public ModelAndView update(@PathVariable Long id, @ModelAttribute InquiryForm inquiryform) { 81 inquiryform.setId(id); 82 * repository.save(inquiryform); 83 return new ModelAndView("redirect:" + buildAdminRedirectUrl("/list")); 84 } 85 86 @DeleteMapping("{id}") 87 public ModelAndView destroy(@PathVariable Long id) { 88 repository.deleteById(id); 89 return new ModelAndView("redirect:" + buildAdminRedirectUrl("/list")); 90 } 91}

Java

1public class ModelAndView { 2 3 @Nullable 4 private Object view; 5 6 @Nullable 7 private ModelMap model; 8 9 @Nullable 10 private HttpStatus status; 11 12 private boolean cleared = false; 13 14 public ModelAndView() { 15 } 16 17 public ModelAndView(String viewName) { 18 this.view = viewName; 19 } 20 21 public ModelAndView(View view) { 22 this.view = view; 23 } 24 25 public ModelAndView(String viewName, @Nullable Map<String, ?> model) { 26 this.view = viewName; 27 if (model != null) { 28 getModelMap().addAllAttributes(model); 29 } 30 } 31 32 public ModelAndView(View view, @Nullable Map<String, ?> model) { 33 this.view = view; 34 if (model != null) { 35 getModelMap().addAllAttributes(model); 36 } 37 } 38 39 public ModelAndView(String viewName, HttpStatus status) { 40 this.view = viewName; 41 this.status = status; 42 } 43 44 public ModelAndView(@Nullable String viewName, @Nullable Map<String, ?> model, @Nullable HttpStatus status) { 45 this.view = viewName; 46 if (model != null) { 47 getModelMap().addAllAttributes(model); 48 } 49 this.status = status; 50 } 51 52 public ModelAndView(String viewName, String modelName, Object modelObject) { 53 this.view = viewName; 54 addObject(modelName, modelObject); 55 } 56 57 public ModelAndView(View view, String modelName, Object modelObject) { 58 this.view = view; 59 addObject(modelName, modelObject); 60 } 61 62 63 public void setViewName(@Nullable String viewName) { 64 this.view = viewName; 65 } 66 67 @Nullable 68 public String getViewName() { 69 return (this.view instanceof String ? (String) this.view : null); 70 } 71 72 public void setView(@Nullable View view) { 73 this.view = view; 74 } 75 76 @Nullable 77 public View getView() { 78 return (this.view instanceof View ? (View) this.view : null); 79 } 80 81 public boolean hasView() { 82 return (this.view != null); 83 } 84 85 public boolean isReference() { 86 return (this.view instanceof String); 87 } 88 89 @Nullable 90 protected Map<String, Object> getModelInternal() { 91 return this.model; 92 } 93 94 public ModelMap getModelMap() { 95 if (this.model == null) { 96 this.model = new ModelMap(); 97 } 98 return this.model; 99 } 100 101 public Map<String, Object> getModel() { 102 return getModelMap(); 103 } 104 105 public void setStatus(@Nullable HttpStatus status) { 106 this.status = status; 107 } 108 109 @Nullable 110 public HttpStatus getStatus() { 111 return this.status; 112 } 113 114 115 public ModelAndView addObject(String attributeName, @Nullable Object attributeValue) { 116 getModelMap().addAttribute(attributeName, attributeValue); 117 return this; 118 } 119 120 public ModelAndView addObject(Object attributeValue) { 121 getModelMap().addAttribute(attributeValue); 122 return this; 123 } 124 125 public ModelAndView addAllObjects(@Nullable Map<String, ?> modelMap) { 126 getModelMap().addAllAttributes(modelMap); 127 return this; 128 } 129 130 131 public void clear() { 132 this.view = null; 133 this.model = null; 134 this.cleared = true; 135 } 136 137 public boolean isEmpty() { 138 return (this.view == null && CollectionUtils.isEmpty(this.model)); 139 } 140 141 public boolean wasCleared() { 142 return (this.cleared && isEmpty()); 143 } 144 145 146 @Override 147 public String toString() { 148 return "ModelAndView [view=" + formatView() + "; model=" + this.model + "]"; 149 } 150 151 private String formatView() { 152 return isReference() ? "\"" + this.view + "\"" : "[" + this.view + "]"; 153 } 154 155}

試したこと

デバッグ時の「ソースが見つかりませんでした」の対処法を参考に、上記の「ソース・ルックバック・パスの編集」からJavaアプリ全体を追加しましたが、同じエラーが出てきます。

追加後の編集画面はこうなってます。

app

java - /app/src/main
resources - /app/src/main
java - /app/src/test
annotations - /app/target/generated-sources
test-annotations - /app/target/generated-test-sources

デフォルト

app

spring-boot-starter-thymeleaf
spring-boot-starter
spring-boot-starter-logging

などが出てきます。

補足情報(FW/ツールのバージョンなど)

SpringToolSuite4
java 11.0.15 2022-04-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.15+8-LTS-149, mixed mode)

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

「ソースが見つかりませんでした」とデバッグが停止してしまいます。

すべてのクラスのソースが存在する、とは思わないほうがいい。件のRootController$$FastClassBySpringCGLIB$$d14b0fafクラスがどうなのかは知りませんが。
たとえば、Proxyをつかうと、「動的プロキシ・クラス」が定義される。「動的プロキシ・クラス」のソースは存在しない(みたことない)。
# デコンパイルすれば、ソースのようなものを表示してくれるかもしれないが。

投稿2022/05/26 02:39

shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問