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

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

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

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

4531閲覧

Springbootのエラーを解消したい。

kusogomitan

総合スコア17

Java

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2020/10/16 02:53

App.javaを実行すると

java.lang.NoClassDefFoundError: javax/validation/ValidationException (省略) at com.example.App.main(App.java:34) Caused by: java.lang.ClassNotFoundException: javax.validation.ValidationException java.lang.IllegalStateException: Failed to execute CommandLineRunner (省略) at com.example.App.main(App.java:34) Caused by: org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.lang.NullPointerException Caused by: java.lang.NullPointerException: null

というエラーメッセージがコンソールに出力され、正しく動作しません。
解決方法を教えていただきたいです。

App.java

package com.example; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import com.example.domain.Customer; import com.example.repository.CustomerRepository; import com.example.service.CustomerService; @EnableAutoConfiguration @ComponentScan public class App implements CommandLineRunner{ @Autowired CustomerService customerService; @Autowired NamedParameterJdbcTemplate jdbcTemplate; @Autowired CustomerRepository customerRepository; @Override public void run(String...strings)throws Exception { Customer created = customerRepository.save(new Customer(null,"Hidetoshi","Dekisugi")); System.out.print(created + "is created!"); customerRepository.findAll().forEach(System.out::println); } public static void main(String[] args) { SpringApplication.run(App.class, args); } }

AppConfig.java

package com.example; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import net.sf.log4jdbc.Log4jdbcProxyDataSource; import javax.sql.DataSource; @Configuration public class AppConfig { @Autowired DataSourceProperties datasourceProperties; DataSource datasource; @ConfigurationProperties(prefix = "spring.datasource") @Bean(destroyMethod = "close") DataSource realDataSource() { @SuppressWarnings("rawtypes") DataSourceBuilder factory = DataSourceBuilder .create(this.datasourceProperties.getClassLoader()) .url(this.datasourceProperties.getUrl()) .username(this.datasourceProperties.getUsername()) .password(this.datasourceProperties.getPassword()); this.datasource = factory.build(); return this.datasource; } @Primary @Bean Log4jdbcProxyDataSource datasource() { return new Log4jdbcProxyDataSource(this.datasource); } }

CustomorRepository.java

package com.example.repository; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.SqlParameterSource; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import com.example.domain.Customer; @Repository @Transactional public class CustomerRepository { @Autowired NamedParameterJdbcTemplate jdbcTemplate; private static final RowMapper<Customer> customerRowMapper = (rs,i) ->{ Integer id = rs.getInt("id"); String firstName = rs.getString("first_name"); String lastName = rs.getString("last_name"); return new Customer(id, firstName, lastName); }; public List<Customer> findAll(){ List<Customer> Customers = jdbcTemplate.query("SELECT id,first_name FROM customers ORDERBY id", customerRowMapper); return Customers; } public Customer findOne(Integer id) { SqlParameterSource param = new MapSqlParameterSource().addValue("id", id); return jdbcTemplate.queryForObject("SELECT id,first_name,last_name FROM customers WHEREid =:id", param, customerRowMapper); } public Customer save(Customer customer) { SqlParameterSource param = new BeanPropertySqlParameterSource(customer); if(customer.getId() == null) { jdbcTemplate.update("INSERT INTO customers (first_name,last_name) values(:firstName, :lastName,)",param); }else { jdbcTemplate.update("UPDATE customers SET first_name =:first_name, last_name =:last_name WHERE is =:id",param); } return customer; } public void delete(Integer id) { SqlParameterSource param = new MapSqlParameterSource().addValue("id", id); jdbcTemplate.update("DELETE FROM customers WHERE id=:id",param); } }

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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>hajiboot-layering</artifactId> <version>1.0.0-SNAPSHOT</version> <name>hajiboot-layering</name> <description>Demo project for Spring Boot</description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.lazyluke</groupId> <artifactId>log4jdbc-remix</artifactId> <version>0.2.7</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version><!--$NO-MVN-MAN-VER$--> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

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

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

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

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

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

m.ts10806

2020/10/16 02:54

>App.javaを実行すると Spring Bootであればjavaを直接実行することにはならないかと思いますが、 どのような実行方法をとられているのでしょうか。
kusogomitan

2020/10/16 03:58

STSを使って実行しています!
m.ts10806

2020/10/16 04:01

いえ、ですから 当該エラーが発生するまでの手順です。 どうやって起動してどうやって確認しているのか
kusogomitan

2020/10/16 04:12

すみませんつい3日前ほどから勉強を始めたので、何を求められているのかが分かりません、、、
m.ts10806

2020/10/16 04:15

・プロジェクトはどうやって作りましたか ・ここまでコードを作った後、どのように起動しましたか  (ふつうはプロジェクト右クリック→Springアプリケーションで起動する) ・起動した後、どのように動作確認を行いましたか  (ふつうはブラウザからURLを打って実行する) あと追加 ・そもそもコントローラもVIEWもないですがどういうアプリケーションを作っているつもりですか
kusogomitan

2020/10/16 04:20

プロジェクトはSTS内のeclipseの機能を使用し、実行と作成を行っています。 実行方法は右クリックからspringアプリケーションで起動しています。 エラーメッセージはコンソールに出すようにしています。 JdbcTemplateを使ったリポジトリクラスの実装を行っているつもりです。 テキストに沿って作っているので詳しい構造は分かりません、すみません
m.ts10806

2020/10/16 04:22

起動したときのエラーですか? 動作確認時のエラーですか? >テキストに沿って作っているので ん-それだとどういうものを作ろうとしているのか、分からないので答えづらい部分がありますね。 「書籍」なら何かしら抜けてるんだろうし、「講義のテキスト」なら講師に聞くべきだし。 あと下記もお願いします。 -- ・起動した後、どのように動作確認を行いましたか  (ふつうはブラウザからURLを打って実行する)
kusogomitan

2020/10/16 04:25

Springアプリケーションで実行した際にエラーが出ています。 アプリケーション起動時にエラーが出ているので、動作確認はまだ行っていません
m.ts10806

2020/10/16 04:28 編集

なるほど、となるとエラーの通りですね。 (ただやはり「App.javaを実行」は表現として正しくないです)
guest

回答1

0

ベストアンサー

spring-boot-starter-validationをpom.xmlに追加してください。

xml

1<dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-validation</artifactId> 4</dependency>

投稿2020/10/16 04:24

A-pZ

総合スコア12011

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

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

A-pZ

2020/10/16 04:59

@deaf_tadashi さん ✨ d(・ω・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問