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
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る