Scrapboxに移行しました。
SpringBoot2.0.6で「java.lang.ClassNotFoundException: javax.xml.bind.JAXBException」が出る
Kotlin + Spring Boot 2で開発していると起動時に java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
が発生した。
原因はJDKをJava10に指定していたからっぽく、Java9以降では javax.xml.bind
が標準ライブラリから除外されたことに起因している。
環境
現時点での、エラーが発生した自身の環境を記載。
エラーログ(一部抜粋)
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final] at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:87) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:209) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:164) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:51) ~[spring-orm-5.0.10.RELEASE.jar:5.0.10.RELEASE] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.0.10.RELEASE.jar:5.0.10.RELEASE] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390) ~[spring-orm-5.0.10.RELEASE.jar:5.0.10.RELEASE] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377) ~[spring-orm-5.0.10.RELEASE.jar:5.0.10.RELEASE] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.0.10.RELEASE.jar:5.0.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1753) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1690) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE] ... 16 common frames omitted Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ~[na:na] ... 27 common frames omitted
解決策
上記のリンク先にも記載されている通り、依存関係に javax.xml.bind
を追加する形で対応した。
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency>
または java.xml.bind
をモジュールに追加するか、Javaのバージョンを8に落とすことでも対応できる。
【CSS】justify-contentとalign-contentの違い
CSS全然わからんマンが、justify-content
と align-content
の違いを理解した(はず)のでメモ。
「justify-content
は横軸に対する位置、align-content
は縦軸に対する位置」みたいに説明してるところがいくつかあって、
色々誤解を招くんじゃないかと思った(実際に誤解してた)。
結論
developer.mozilla.org developer.mozilla.org
なお、Flexコンテナの主軸は flex-direction
プロパティに対して指定する。(row
or column
)
主軸・交差軸について
そもそも「主軸」「交差軸」についてピンと来てなかった。
Flexコンテナは「Flexアイテムをどの方向に配置するか」を決めることができ、その方向を「主軸」としている。
デフォルトの場合、主軸は横方向(row
)なので、交差軸は縦になる。
逆に主軸を縦(column
)にした場合は、交差軸が横になる。
Flexbox、考え方がシンプルでいいっすね。(難しいけど)
【Docker】docker-composeメモ
プライベートでRailsの開発環境をdockerで作る機会があったので、忘れる前にアウトプット。
久しぶりにdocker触りましたが、色々忘れてます。
docker-compose
イメージのビルド
$ docker-compose build
docker-compose.yml
にbuild
が指定されている場合は、ビルドしてイメージを作成する。
コンテナの作成・起動
$ docker-compose up
- コンテナが未作成の場合、作成して起動する。
- コンテナが作成済みの場合、作成済みのコンテナを起動する。
-d
オプションをつければバックグラウンドで起動する- コンテナの作成元となるイメージが存在しない場合はpullしてくるか、ビルドする。
作成済みコンテナの起動
$ docker-compose start
コンテナの停止
$ docker-compose stop
コンテナの再起動
$ docker-compose restart
コンテナの停止・削除
$ docker-compose down
-v
オプションをつければ、ボリュームも削除
サービスを選んでコマンド実行
$ docker-compose exec [サービス名] [コマンド]
コンテナ一覧の表示
$ docker-compose ps
-q
オプションをつければ、コンテナIDだけ表示される。
その他
Alpine Linux
- シェルは
/bin/ash
を指定する。($ docker exec -it [container id] /bin/ash
) - パッケージマネージャは
apk
。
- シェルは
【Vue.js】Vue.jsメモ(v-on:イベントハンドリング)
今回は「クリック」や「入力」といったイベントをハンドリングする v-on
ディレクティブについて。
- 作者: mio
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2018/05/29
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る