问题标签 [deltaspike]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1020 浏览

junit - 为 Deltaspike 测试控制配置日志记录

我使用以下依赖项进行了基于 CDI 的测试:

这些是我的 logging.properties:

运行测试时,我有以下日志消息:

我不需要这些消息,所以我在 logging.properties 中添加了以下配置:

现在前两行已经消失了。我怎样才能摆脱这些CdiTestSuiteRunner$LogRunListener消息?

注意:我可以通过以下配置摆脱这些消息:

但这显然不是我想要的。

0 投票
3 回答
1235 浏览

java - 带有 CDI 的 DeltaSpike 自定义 ConfigSource

我正在尝试定义一个自定义的 DeltaSpike ConfigSource。自定义配置源将具有最高优先级,并检查数据库中的配置参数。

我有一个 ConfigParameter 实体,它只有一个键和一个值。

我有一个@Dependent可以找到所有配置参数的 DAO。

我现在要做的是定义一个自定义 ConfigSource,它能够从数据库中获取配置参数。因此,我想在 ConfigSource 中注入我的 DAO。所以基本上像

但是,当通过META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSource注册 ConfigSource 时,该类将被实例化,CDI 将不起作用。

有没有办法让 CDI 在这种情况下工作?

在此先感谢您,如果您需要任何进一步的信息,请告诉我。

0 投票
1 回答
299 浏览

java - DefaultWindowContextQuotaHandler 和 JsfWindowContextQuotaHandler 之间的 DeltaSpike 模棱两可的依赖关系

我正在使用部署在 JBoss 7.1.1 上的 DeltaSpike 1.7.1 和 CDI 1.0 (Weld 1.1.5)。这是一个遗留项目,我无法更改我们正在使用的技术。

仅当我部署多个 WAR 文件时才会出现问题(我知道 CDI 在 EAR 中存在/遇到多个 WAR 文件的问题,但我没有在 EAR 文件之外的 JBOSS 实例中找到有关多个 WAR 文件的任何信息。

请注意,问题不会在每次部署项目时都会发生,通常,当我要求 Jenkins 一次构建和部署多个项目时,我会收到以下错误消息:

WELD-001318 Cannot resolve an ambiguous dependency between [Managed Bean [class org.apache.deltaspike.core.impl.scope.window.DefaultWindowContextQuotaHandler] with qualifiers [@Any @Default], Managed Bean [class org.apache.deltaspike.jsf.impl.scope.window.JsfWindowContextQuotaHandler] with qualifiers [@Any @Default]]

我试图摆脱 DeltaSpike,但这些项目严重依赖 @ViewAccessScoped 注释,并且会浪费大量时间来更改它。

0 投票
0 回答
275 浏览

wildfly - Wildfly 10 中的 Deltaspike IllegalStateException

我目前正在将我的容器从 JBoss AS 7 更新到 Wildfly 10。迁移进展顺利,除了 Deltaspike 集成。在 JBoss AS 7 AS 下,一切都按预期工作,我只需要创建自定义 SecurityBindingTypes 和 SecurityParameterBindings。当我尝试在 Wildfly 10 下执行相同的代码时,我收到以下错误:

原因:java.lang.IllegalStateException:查找授权方方法 bean 的异常 - 在 org.apache.deltaspike.security.impl.extension.Authorizer 中找不到方法 [class com.mimeya.deb.security.CustomAuthorizer.doSecuredComplianceReportReadAccessCheckForUnitId] 的 bean。 org.apache.deltaspike.security.impl.extension.Authorizer.authorize(Authorizer.java:174) 的lazyInitTargetBean(Authorizer.java:215) org.apache.deltaspike.security.impl.extension.DefaultSecurityStrategy.invokeBeforeMethodInvocationAuthorizers(DefaultSecurityStrategy. java:80) 在 org.apache.deltaspike.security.impl.extension.DefaultSecurityStrategy.execute(DefaultSecurityStrategy.java:62) 在 org.apache.deltaspike.security.impl.extension.SecurityInterceptor.filterDeniedInvocations(SecurityInterceptor.java:44)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method. java:498) 在 org.jboss.weld.interceptor.proxy.WeldInvocationContext.invokeNext(WeldInvocationContext.java:83) 在 org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:74) 在 org .jboss.weld.interceptor.proxy.WeldInvocationContext.proceed(WeldInvocationContext.java:115) 在 org.jboss.weld.bean.InterceptorImpl.intercept(InterceptorImpl.java:108) 在 org.jboss.as.weld.ejb.DelegatingInterceptorInvocationContext .proceed(DelegatingInterceptorInvocationContext.java:77) 在 org。jboss.as.weld.ejb.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:68) at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:80) at org.jboss.as.weld.ejb。 Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93) at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340 ) 在 org.jboss.as.jpa 的 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 的 org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)。拦截器.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437) org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke (AbstractEJBRequestScopeActivationInterceptor.java:64) 在 org.jboss.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 在 org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)。 as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)在组织。jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor. java:52) 在 org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) 在 org.jboss.invocation 的 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) .InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275) ... 144 更多processInvocation(ChainedInterceptor.java:61) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org .jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 在 org.jboss.as.ejb3.tx.CMTTxInterceptor .invokeInOurTx(CMTTxInterceptor.java:275) ... 144 更多processInvocation(ChainedInterceptor.java:61) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org .jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 在 org.jboss.as.ejb3.tx.CMTTxInterceptor .invokeInOurTx(CMTTxInterceptor.java:275) ... 144 更多PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275) .. . 144 更多PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275) .. . 144 更多

作为参考,这是我们自定义的 SecurityBindingType:

这是我们自定义的 SecurityParameterBindings 之一:

这是我正在调用的方法之一的示例:

我一直在阅读一堆文档,但无济于事。我查看了快速入门指南 ( https://github.com/wildfly/quickstart/tree/10.x/deltaspike-authorization)、JBoss开发者论坛和 Deltaspike 源代码本身。任何帮助或尝试的想法将不胜感激。谢谢你。

0 投票
1 回答
197 浏览

java - Deltaspike i18n 编码错误

我正在使用 Deltaspike Core 检索和显示不同语言的消息。我正在使用默认的 MessageContext 实现,但使用了自定义 MessageResolver。在我尝试使用编码为 UTF-8 的属性文件之前,它运行良好。

UTF-8 文件是带有消息的 locale_source.properties:

messageKey=Localización 不负责任。

我的代码如下所示:

它检索消息,但出现编码错误:

Localización 没有任何责任。

如您所见,它将 ó 更改为ó。有什么东西可以指定属性文件的编码吗?我还能做些什么来解决这个问题?

谢谢。

0 投票
1 回答
275 浏览

jpa - 使用已经用 @Transactional DeltaSpike 创建的 EntityManager

我正在尝试通过 DeltaSpike 库使用@Transactional,但我遇到了一些问题。让我们来看看:

1) 我有一个使用自定义限定符创建 EntityManager 的 DAO 生产者。

现在想象一下我在其他类中注入 DAO:

调用生产者并使用 myPU01 创建 EntityManager。但在 DAO 类中,我有一个方法 save,我想使用来自 DeltaSpike lib 的 @Transactional:

问题就在这里。@Transactional 将尝试创建另一个 EntityManager,但我已经使用 myPU01 创建了一个 EntityManager。我不能将 persistenceUnitName 放在“保存”旁边。

0 投票
1 回答
362 浏览

java - DeltaSpike 数据和 JTA 不起作用

对于 Wildfly 10.1 中基于容器的数据源,我遇到“没有正在进行的事务”的问题。

有我的设置:

我们不使用persistence.xml,所以它是我的hibernate.cfg.xml

我还添加了apache-deltaspike.properties文件与行

也用于在容器中提供事务策略支持。但不幸的是,在我的@Stateless服务中,我仍然没有交易。谁能给我一个建议,我的配置有什么问题?

0 投票
1 回答
884 浏览

cdi - Deltaspike 数据 (CDI + JPA) 自定义 PrePersistAuditListener 和 PreUpdateAuditListener 用于 UTC 的自定义 java.time.ChronoLocalDateTime

Wildfly 9.0.2.Final 上的 Deltaspike Ver 1.7.2

我在实体 bean 上使用 JPA 和 Deltaspike 数据(和注释)@EntityListeners(AuditEntityListener.class)的审计功能,@CreatedOn不同之处在于我有一个自定义实现,它将任何+ OR a转换为 UTC 日期和时间。@ModifiedOn@ModifiedByjava.time.ChronoLocalDateTimeLocalDateTimeZoneOffsetZonedDateTime

UTC日期时间

实体 bean 部分

UTCDateTime 类还有一个自定义的 AttributeConverter,因为 epoch 值保存在数据库中。

现在,当我坚持实体时,我得到以下异常(真正原因的最后一点):

有没有办法实现我自己的org.apache.deltaspike.data.impl.audit.PrePersistAuditListenerorg.apache.deltaspike.data.impl.audit.PreUpdateAuditListener使用它们来创建实例UTCDateTime

编写我自己的 EntityListener -->UTCDateTimeAuditListener并在遵循方法的@EntityListeners(UTCDateTimeAuditEntityListener.class)地方使用它是否正确?UTCDateTimeAuditListenerorg.apache.deltaspike.data.impl.audit.AuditEntityListener

其次,我是否需要在某处使用 CDI 限定符以确保我UTCDateTimeAuditEntityListener获得对知道如何构造实例的正确PrePersistAuditListener和实现的引用?PreUpdateAuditListenerUTCDateTime

最后,我不知道它是否相关,但在哪里org.apache.deltaspike.data.impl.audit.TimestampsProvider适合这种情况?

更新

我在回答我的问题方面取得了一些进展。到目前为止我所做的。不需要定制AuditEntityListener,DeltaSpike 提供的定制就足够了。

我创建了一个TimestampsProvider能够处理我的UTCDateTime对象的新实现。

beans.xml 还将其列为 CDI @Alternative

内容apache-deltaspike.properties

现在的问题是两个AuditProvider实例都被执行了,首先是我的实现(UTCDateTimeAuditProvider)然后是默认的TimestampsProvider

我尝试了各种组合,仅使用注释指定我的@Alternative 实现,或者仅在 beans.xml 中以及在类和 beans.xml 中。

有谁知道为什么TimestampsProvider在我的@Alternative 实现之后执行默认值?

Wildfly 9.0.2.Final 和 Weld 2.2.16 (SP1) 上的 Deltaspike Ver 1.7.2

0 投票
1 回答
581 浏览

java - DeltaSpike @Transactional 未被调用

好吧,我正在尝试使用 DeltaSpike 的@Transactional,但从未调用过 TransactionalInterceptor。

这是我的 EntityManagerProducer:

我有一个注入 EntityManager 并使用 @Transactional 的类,请参阅:

我有一个带有拦截器的 beans.xml,看:

我该如何解决这个问题?我在 apache 页面(https://deltaspike.apache.org/documentation/jpa.html)中遵循完全相同的示例。

我正在使用 Tomcat7 + JDK 1.8 + CDI 1.2(焊接 2.3.0 最终实现)

编辑1:

这是我的persistence.xml

编辑 2:我在 pom.xml 中的依赖项

0 投票
1 回答
458 浏览

java - 在 DeltaSpike 中强制执行新事务

我有一个使用 DeltaSpike 的 @Transactional 的方法,但是在这个方法中我需要调用 save() 并强制提交,与之后的任何异常无关。如果我使用保存并在强制执行后 DeltaSpike 回滚所有内容,如下所示:

所以我的想法是调用另一种方法来用另一个事务保存我的 bean,如下所示:

但是 DeltaSpike 没有属性 REQUIRES_NEW 和任何其他属性来创建新的事务。我该怎么做 ?