- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 pom 中我有 ehcache 2 依赖
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>${ehcache.version}</version>
</dependency>
问题是在应用程序构建期间,我们有一个 grype 检查漏洞,它检测到这个依赖项中的几个库:
NAME INSTALLED FIXED-IN VULNERABILITY SEVERITY
jackson-databind 2.11.1 2.12.6.1 GHSA-57j2-w4cx-62h2 High
jersey-common 2.31 2.34 GHSA-c43q-5hpj-4crv Medium
jetty-server 9.4.39.v20210325 9.4.41 GHSA-m6cp-vxjx-65j6 Low
这有点令人困惑,因为库以非常奇怪的方式添加到 ehcache jar - 不像依赖项,而是扩展名为 *.class_terracotta 的文件在文件夹“rest-management-private-classpath”中显示 screenshot
由于采用这种方法,无法在 pom 文件中覆盖或排除库版本。
可能正确的方法是从 ehcache 2 迁移到 3,但这可能需要一些时间,我想知道是否有任何快速解决方案可以从 ehcache jar 中排除此库或覆盖它们的版本?
附言当我检查 ehcache 文档时,它说应该添加 pom 类型的依赖项
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.4</version>
<type>pom</type>
</dependency>
但是如果我在我的 pom 中将它更改为这种类型 - 缓存管理器未初始化并且我收到此错误
Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'sessionRepositoryFilterRegistration' defined in class path resource [org/springframework/boot/autoconfigure/session/SessionRepositoryFilterConfiguration.class]: Unsatisfied dependency expressed through method 'sessionRepositoryFilterRegistration' parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.session.JdbcSessionConfiguration$SpringBootJdbcHttpSessionConfiguration': Unsatisfied dependency expressed through method 'setTransactionManager' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: 'entityManagerFactory' depends on missing bean 'cacheManager'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cacheManager' available
最佳答案
有时库 Artifact 以多种方式发布。
一种方法是打包所有需要的依赖项,这样它就可以按原样使用而无需添加额外的依赖项。挑战正是您在这里观察到的 - 无法排除或更改那些嵌入式依赖项。 org.hamcrest:hamcrest-all
就是一个例子。
一些库还有一个“较轻”的版本——一个只包含特定 Artifact 的类等的版本。然后,我们可以显式添加其他依赖项以获得所需的功能 - 我们完全可以控制使用的版本等。 org.hamcrest:hamcrest-core
和 org.hamcrest:hamcrest-library
是 hamcrest-all
的部分替代品(可能需要更多依赖项获得 -all
版本提供的完整功能)。
我个人更喜欢第二种方式,因为遇到的问题很难找到和调试。
因此,这里的解决方法是查看是否有 Ehcache 版本 2 的“轻量级”版本并切换到它(以及核心功能所需的任何其他依赖项)。
如果没有,并且您绝对不能切换到版本 3,那么您可以继续使用 maven-shade-plugin重建 ehcache jar,过滤掉额外的依赖项。我强烈建议不要这样做,因为谁想在每次版本更新时重建 ehcache jar ?并且(现在损坏的)库无论如何也有可能无法正常工作。此外,它必须手动上传到团队的 Artifact 存储库,最好使用分类器或不同的组 ID 来明确这不是官方版本。如果所有这些都让您头晕目眩,那就是进行升级的一个很好的理由。 :)
关于java - Ehcache 2 maven 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71931103/
对于 Lucene,我们有一个很好的工具箱,如 Luke查看、诊断、编辑等。我们是否有类似的工具(至少显示)用于 EhCache(当我们启用 diskPersistent 时)? 最佳答案 我不知道有
我必须集成 spring 和 ehcache,并尝试使用 来实现它阻塞缓存 图案 有一个选项自填充缓存范围 对于 共享(默认)和方法 .你能解释一下有什么区别吗? 还有注解 @可缓存与 自我填充 旗
我有一个配置为使用 JPA 和 Hibernate 的大型 Java 应用程序。据说它还被配置为对实体和查询缓存使用 ehcaching。但是,我打开了 sql 日志记录,并且没有缓存任何实体。所有实
正如您在标题中看到的那样,问题很清楚,很高兴听到您对 adv./disadv 的想法。它们之间的差异。 更新:我决定使用 Hazelcast,因为它具有分布式缓存/锁定机制等优点,并且在适应您的应用程
我知道属性“updateCheck”可以在 XML 中设置为“false”,如下所示: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs
我在不同的类中创建了两个方法,并使用 @Cacheable 注释对它们进行注释,并给出了相同的缓存名称,如下所示: class MyClass{ @Cacheable(value="inSco
我正在尝试新的 ehcache 版本,但我注意到,显然,没有搜索 API。 这是正常的还是我错过了什么?文档没有说明这一点。 最佳答案 主要原因是在缓存中搜索在到期和驱逐时具有非常奇怪的语义。由于 E
在 Ehcache 2 中,可以使用 calculateInMemorySize() 获取内存中的大小,例如: CacheManager manager = CacheManager.create()
如果我有以下配置: timeToIdleSeconds 的值是多少用于缓存 test ?它会从默认缓存继承,因此等于 120,还是会采用手册中给出的默认值,即 0(无穷大)? 最佳答案 timeT
我正在使用 ehcache 通过 hibernate 缓存实体。 查看ehcache监视器,一切似乎都工作正常(刷新将缓存计数设置为零,然后重新加载将计数放回一),但是如果我直接在数据库上更改某些值并
ehcache 是一个高度可配置的野兽,示例相当复杂,通常涉及多层接口(interface)。 有没有人遇到过最简单的例子,它只是在内存中缓存一个数字(不是分布式的,没有 XML,尽可能少的 java
net.sf.ehcache.CacheManager.ALL_CACHE_MANAGERS 是否有替代品?在 org.ehcache ehcach
使用 Ehcache 3.1,我可以知道当前存储在 ehcache 中的元素的大小以及缓存到目前为止的命中和未命中数。我认为 2.6 有 .getStatistics(),它做类似的事情,但是我在 3
我是 Spring 框架中的 ehcache v/s ehcache-core 的初学者,我的 pom.xml 使用的是 ehcache 版本 1.5.0 net.sf.ehcache ehcach
我正在运行一个使用 Ehcache 3.4.0 的网络应用程序。我有一个缓存配置,它定义了 1000 个内存中对象的简单默认值: java.lang.Object java.lang
我想找到一种在 ehCache 装饰器类中使用 Spring 依赖注入(inject)的好方法。我的 ehcache.xml 具有以下缓存配置: 我有以下装饰器实现: public cl
我想弄清楚最新版本的 Ehcache(2.7.0、2.7.1、2.7.2、2.7.4、2.7.5、2.8.0)是否真的有新版本的 ehcache-core或者如果 ehcache-core 自版本 2
我们在 WebLogic Server 10.3.4 上运行 Spring 3.0.5 Web 应用程序Solaris with Sun JVM 1.6.0_x 64bit 使用 EhCache 2.
ehcache 3.8.1 是否不再自动获取源根目录下的 ehcache.xml 文件中的配置设置? 最佳答案 是的,看起来是这样,现在需要使用 XML 文件来完成 configuringe a Ca
http://ehcache.org/generated/2.9.0/html/ehc-all/#page/Ehcache_Documentation_Set%2Fco-use_supported_t
我是一名优秀的程序员,十分优秀!