我想把我的项目从Wildfly 8.2移到新的版本(即11版),当然在WF8.2上一切都很正常。在使用jboss-migration-tool和尝试在新版本上部署包后,我每次都得到以下信息。
12:55:36,838 ERROR [org.jboss.as.controller.management-operation] (controller Boot Thread) WFLYCTL0013: 操作("deploy")失败--地址。([("deployment" => "my-app.war")]) - 失败描述。WFLYCTL0412: 所需服务未安装:"" -失败描述: { "WFLYCTL0412: 未安装的所需服务:" => ["jboss.naming.context.java.jboss.infinispan.container.myapp"], "WFLYCTL0180: 服务缺少不可用的依赖关系" => [ "jboss.naming.context.java.module.myapp-core.myapp.env.\"com.myapp.core.midware.server.services.ws.services.SingletonEJB/"._embeddedCacheContainer is missing ] 。}
我不知道该怎么办。我试着从8.2版本(6.0.2-Final版本)中移出infinitspan,但是整个WF应用程序无法启动。现在我更新了pom.xml,得到了新的版本(8.2.8-Final),做了包,但还是显示出来。
甚至我试着在文件(com.myapp.core.midware.server.services.ws.services.SingletonEJB)中添加注释。
// @Resource(lookup="java:jboss/infinispan/container/nmarket")
// private CacheContainer _embeddedCacheContainer;
并给它分配了新的DefaultCacheManager来引用。
_cacheManager = new DefaultCacheManager(); //_embeddedCacheContainer.getCache().getCacheManager();
它显示出来。
谢谢你的帮助
EDIT:
这是standalone-full.xml中的infinitspan部分。
<subsystem xmlns="urn:jboss:domain:infinispan:4.0">
<cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">
<local-cache name="passivation">
<transaction mode="BATCH"/>
<file-store passivation="true" purge="false"/>
</local-cache>
<local-cache name="persistent">
<transaction mode="BATCH"/>
<file-store passivation="false" purge="false"/>
</local-cache>
<local-cache name="concurrent">
<file-store passivation="true" purge="false"/>
</local-cache>
</cache-container>
<cache-container name="ejb" aliases="sfsb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan">
<local-cache name="passivation">
<transaction mode="BATCH"/>
<file-store passivation="true" purge="false"/>
</local-cache>
<local-cache name="persistent">
<transaction mode="BATCH"/>
<file-store passivation="false" purge="false"/>
</local-cache>
</cache-container>
<cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan">
<local-cache name="entity">
<transaction mode="NON_XA"/>
<eviction strategy="LRU" max-entries="10000"/>
<expiration max-idle="100000"/>
</local-cache>
<local-cache name="local-query">
<transaction mode="NONE"/>
<eviction strategy="LRU" max-entries="10000"/>
<expiration max-idle="100000"/>
</local-cache>
<local-cache name="timestamps">
<transaction mode="NONE"/>
<eviction strategy="NONE"/>
</local-cache>
</cache-container>
<cache-container name="server" default-cache="default" module="org.wildfly.clustering.server">
<local-cache name="default">
<transaction mode="BATCH"/>
</local-cache>
</cache-container>
</subsystem>
首先,我会从最新的版本开始。目前最新的版本是WildFly 19.1.0。https:/wildfly.orgnews20200504WildFly-1910-Released。). 每次WildFly发布时,我都会升级它。
我在~2017年升级到WildFly 12时,也换成了Gradle(现在是6.3)。IMO它比Maven创建JAR和部署(JAR+WAR)你的EAR要简单得多。