LoginSignup
3
4

More than 5 years have passed since last update.

Java11でJAXBContextなどを含むシステムプロパティが使えなくなったメモ

Last updated at Posted at 2018-12-13

時間もかかって結構大変だったので備忘録。

開発中に、今まで動いていたプロジェクトのJavaのバージョンを11にアップデートするという話があった。

結論から言うと、下記のようなメッセージを含むエラーが延々と出て動かなくなった。

JAXBContext cannot be resolved
The import javax.xml.bind cannot be resolved

これ以外のエラーもあったけど、要は javax.xml.bind などの今まで使えていたライブラリが突然使えなくなっていた。

環境

Java11(jdk-11.0.1)
Spring Tool Suite 3.9.6.RELEASE

解決方法

※Mavenのpom.xmlでライブラリを管理している場合のやり方。

pom.xmlに下記を追加

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.0</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>javax.activation-api</artifactId>
    <version>1.2.0</version>
</dependency>

見つからないといわれているライブラリを自力で用意する必要がある。

Oracle JDK 11 のリリースノート

OracleのJDK 11 Release NotesにRemoved Features and Optionsという項目があった。
いくつかのシステムプロパティがJava11から使えなくなるということらしい。

↓ 自分に関係のあった辺りをコピペ。(赤字が自分が怒られていたライブラリ)

In addition, the following system properties are no longer applicable due to the the removal of the Java EE and CORBA modules:

com.sun.xml.internal.ws.client.ContentNegotiation
com.sun.xml.internal.ws.legacyWebMethod
javax.xml.bind.context.factory
javax.xml.bind.JAXBContext

javax.xml.soap.MetaFactory
javax.xml.ws.spi.Provider
jaxb.fragment
jaxb.noNamespaceSchemaLocation
jaxb.schemaLocation
jaxb.formatted.output
jaxb.encoding

リリースノートに全容が書かれています。

■ リリースノート
https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html

■ Removed Features and Options の項目
https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html#Removed

mail.mimeなど他にも色々無くなっている。

ここで削除されたライブラリを今まで使っていたプロジェクトは、用意無しにJava11にアップデートすると、当然エラーが発生するという事だった。

参考

前述したエラーを解決するために(その時は原因も分からなかった)模索していて見つけたページ

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4