ical4j 2.2.0 using Grape, throws java.lang.NoClassDefFoundError: javax/cache/configuration/Configuration when loading a calendar
ical4j 2.2.0 using Grape, throws java.lang.NoClassDefFoundError: javax/cache/configuration/Configuration when loading a calendar
以前我已经能够运行这个从url.ics
读取事件的脚本
import net.fortuna.ical4j.util.Calendars
import net.fortuna.ical4j.model.component.VEvent
@Grapes(
@Grab(group='org.mnode.ical4j', module='ical4j', version='2.2.0')
)
def url = 'https://calendar.google.com/calendar/ical/xxxx/basic.ics'.toURL()
def cal = Calendars.load(url)
但是,现在我遇到了这个异常 java.lang.NoClassDefFoundError: javax/cache/configuration/Configuration
。
我假设发生了某种依赖性变化。我注意到了这个
javax.cache.cache-api [optional*] - Supports caching timzeone definitions. * NOTE: when not included you must set a value for the net.fortuna.ical4j.timezone.cache.impl configuration
然而,现在我得到了这个java.lang.NoClassDefFoundError: Could not initialize class net.fortuna.ical4j.validate.AbstractCalendarValidatorFactory
感谢任何帮助。
ical4j 查找名为 ical4j.properties
的属性文件并从中加载配置。在同一文件夹中创建此文件并添加
net.fortuna.ical4j.timezone.cache.impl=net.fortuna.ical4j.util.MapTimeZoneCache
指定使用 ConcurrentHashMap
的内存中缓存提供程序。当未指定 属性 net.fortuna.ical4j.timezone.cache.impl
时,ical4j 回退到 JCacheTimeZoneCache
,它使用缓存管理器并要求类路径中存在有效的缓存库。
使用 ical4j.properties
文件的替代方法是以编程方式设置此 属性,例如
System.setProperty("net.fortuna.ical4j.timezone.cache.impl", "net.fortuna.ical4j.util.MapTimeZoneCache")
请记住在调用 Calendars.load(url)
之前设置它,它应该可以工作。
以前我已经能够运行这个从url.ics
读取事件的脚本import net.fortuna.ical4j.util.Calendars
import net.fortuna.ical4j.model.component.VEvent
@Grapes(
@Grab(group='org.mnode.ical4j', module='ical4j', version='2.2.0')
)
def url = 'https://calendar.google.com/calendar/ical/xxxx/basic.ics'.toURL()
def cal = Calendars.load(url)
但是,现在我遇到了这个异常 java.lang.NoClassDefFoundError: javax/cache/configuration/Configuration
。
我假设发生了某种依赖性变化。我注意到了这个
javax.cache.cache-api [optional*] - Supports caching timzeone definitions. * NOTE: when not included you must set a value for the net.fortuna.ical4j.timezone.cache.impl configuration
然而,现在我得到了这个java.lang.NoClassDefFoundError: Could not initialize class net.fortuna.ical4j.validate.AbstractCalendarValidatorFactory
感谢任何帮助。
ical4j 查找名为 ical4j.properties
的属性文件并从中加载配置。在同一文件夹中创建此文件并添加
net.fortuna.ical4j.timezone.cache.impl=net.fortuna.ical4j.util.MapTimeZoneCache
指定使用 ConcurrentHashMap
的内存中缓存提供程序。当未指定 属性 net.fortuna.ical4j.timezone.cache.impl
时,ical4j 回退到 JCacheTimeZoneCache
,它使用缓存管理器并要求类路径中存在有效的缓存库。
使用 ical4j.properties
文件的替代方法是以编程方式设置此 属性,例如
System.setProperty("net.fortuna.ical4j.timezone.cache.impl", "net.fortuna.ical4j.util.MapTimeZoneCache")
请记住在调用 Calendars.load(url)
之前设置它,它应该可以工作。