21.4 ユーザアプリケーションに含めるライブラリの注意事項
アプリケーションサーバが提供するライブラリのうち,ユーザアプリケーションとの競合に注意が必要なライブラリを次に示します。
- ユーザが用意したライブラリの使用可否とそのユーザアプリケーションからの参照可否
-
表21-1の「ユーザが用意したライブラリの使用可否とそのユーザアプリケーションからの参照可否」列が「不可」のライブラリをユーザアプリケーションに含めることはできません。これらのライブラリをユーザ側で追加したとしても,アプリケーションサーバが提供するクラスが優先されるため,ライブラリのバージョンの違いなどによりアプリケーションが意図しない動作となるおそれがあります。
ユーザアプリケーションに含めることができないライブラリを使用したい場合には,ライブラリ競合回避機能の使用を検討してください。ライブラリ競合回避機能については,「付録B.4 ライブラリ競合回避機能」を参照してください。
「ユーザが用意したライブラリの使用可否とそのユーザアプリケーションからの参照可否」列が「条件付き可」のライブラリは,アプリケーションサーバが提供するライブラリをクラスパスに追加しない場合には,ユーザが用意した任意のライブラリを使用できます。また,ユーザが用意したライブラリをユーザアプリケーションに含めることで,ユーザアプリケーションから参照できます。
- アプリケーションサーバで提供するライブラリのユーザアプリケーションからの参照可否
-
表21-1の「アプリケーションサーバで提供するライブラリのユーザアプリケーションからの参照可否」列が「不可」のライブラリは,アプリケーションサーバが提供するライブラリをユーザアプリケーションから直接参照できません。
アプリケーションサーバが提供するJBoss Loggingはユーザアプリケーションからの直接参照をサポートします。提供するJBoss Loggingのバージョンは3.3.2.Finalです。
表21‒1 ユーザアプリケーションに含めるライブラリの使用・参照可否 ライブラリ名
パッケージ名
ユーザが用意したライブラリの使用可否とそのユーザアプリケーションからの参照可否
アプリケーションサーバで提供するライブラリのユーザアプリケーションからの参照可否
JBoss Logging
org.jboss.logging
不可
可
EclipseLink JPA
org.eclipse.persistence
条件付き可※1
不可
Jersey
com.sun.research.ws
条件付き可※2
不可
jersey.repackaged
org.glassfish.jersey
HK2
org.glassfish.hk2
org.jvnet.tiger_types
org.jvnet.hk2
Javassist
javassist
Jackson
com.fasterxml.jackson
条件付き可※3
不可
GlassFish
org.glassfish.cdi.transaction
不可
不可
Google Guava
com.google.common
Hibernate Validator
org.hibernate.validator
Java ClassMate
com.fasterxml.classmate
Java Batch Reference Implementation (jbatch)
com.ibm.jbatch
JBoss classfilewriter
org.jboss.classfilewriter
JSR 236 (Concurrency Utilities for Java EE) RI
org.glassfish.enterprise.concurrent
JSR 367 (JSON Binding) RI
org.eclipse.yasson
JSR 374 (JSON Processing) RI
org.glassfish.json
Mojarra
com.sun.faces
Unified Expression Language RI
com.sun.el
Weld
org.jboss.weld
Tyrus
org.glassfish.tyrus