问题标签 [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.
junit - 为 Deltaspike 测试控制配置日志记录
我使用以下依赖项进行了基于 CDI 的测试:
这些是我的 logging.properties:
运行测试时,我有以下日志消息:
我不需要这些消息,所以我在 logging.properties 中添加了以下配置:
现在前两行已经消失了。我怎样才能摆脱这些CdiTestSuiteRunner$LogRunListener
消息?
注意:我可以通过以下配置摆脱这些消息:
但这显然不是我想要的。
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 在这种情况下工作?
在此先感谢您,如果您需要任何进一步的信息,请告诉我。
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 注释,并且会浪费大量时间来更改它。
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 源代码本身。任何帮助或尝试的想法将不胜感激。谢谢你。
java - Deltaspike i18n 编码错误
我正在使用 Deltaspike Core 检索和显示不同语言的消息。我正在使用默认的 MessageContext 实现,但使用了自定义 MessageResolver。在我尝试使用编码为 UTF-8 的属性文件之前,它运行良好。
UTF-8 文件是带有消息的 locale_source.properties:
messageKey=Localización 不负责任。
我的代码如下所示:
它检索消息,但出现编码错误:
Localización 没有任何责任。
如您所见,它将 ó 更改为ó。有什么东西可以指定属性文件的编码吗?我还能做些什么来解决这个问题?
谢谢。
jpa - 使用已经用 @Transactional DeltaSpike 创建的 EntityManager
我正在尝试通过 DeltaSpike 库使用@Transactional,但我遇到了一些问题。让我们来看看:
1) 我有一个使用自定义限定符创建 EntityManager 的 DAO 生产者。
现在想象一下我在其他类中注入 DAO:
调用生产者并使用 myPU01 创建 EntityManager。但在 DAO 类中,我有一个方法 save,我想使用来自 DeltaSpike lib 的 @Transactional:
问题就在这里。@Transactional 将尝试创建另一个 EntityManager,但我已经使用 myPU01 创建了一个 EntityManager。我不能将 persistenceUnitName 放在“保存”旁边。
java - DeltaSpike 数据和 JTA 不起作用
对于 Wildfly 10.1 中基于容器的数据源,我遇到“没有正在进行的事务”的问题。
有我的设置:
我们不使用persistence.xml,所以它是我的hibernate.cfg.xml
我还添加了apache-deltaspike.properties文件与行
也用于在容器中提供事务策略支持。但不幸的是,在我的@Stateless服务中,我仍然没有交易。谁能给我一个建议,我的配置有什么问题?
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
@ModifiedBy
java.time.ChronoLocalDateTime
LocalDateTime
ZoneOffset
ZonedDateTime
UTC日期时间
实体 bean 部分
UTCDateTime 类还有一个自定义的 AttributeConverter,因为 epoch 值保存在数据库中。
现在,当我坚持实体时,我得到以下异常(真正原因的最后一点):
有没有办法实现我自己的org.apache.deltaspike.data.impl.audit.PrePersistAuditListener
并org.apache.deltaspike.data.impl.audit.PreUpdateAuditListener
使用它们来创建实例UTCDateTime
?
编写我自己的 EntityListener -->UTCDateTimeAuditListener
并在遵循方法的@EntityListeners(UTCDateTimeAuditEntityListener.class)
地方使用它是否正确?UTCDateTimeAuditListener
org.apache.deltaspike.data.impl.audit.AuditEntityListener
其次,我是否需要在某处使用 CDI 限定符以确保我UTCDateTimeAuditEntityListener
获得对知道如何构造实例的正确PrePersistAuditListener
和实现的引用?PreUpdateAuditListener
UTCDateTime
最后,我不知道它是否相关,但在哪里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
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 中的依赖项
java - 在 DeltaSpike 中强制执行新事务
我有一个使用 DeltaSpike 的 @Transactional 的方法,但是在这个方法中我需要调用 save() 并强制提交,与之后的任何异常无关。如果我使用保存并在强制执行后 DeltaSpike 回滚所有内容,如下所示:
所以我的想法是调用另一种方法来用另一个事务保存我的 bean,如下所示:
但是 DeltaSpike 没有属性 REQUIRES_NEW 和任何其他属性来创建新的事务。我该怎么做 ?