我们目前正在将JEE 6应用程序(WAR部署)从GF 3.1移植到Payara 4.1。1.我们正在使用EJB和CDIBean。它们被打包在不同的jar文件中。我面临的问题是无法找到位于另一个jar文件中的CDIBean。每个jar文件都有自己的META-INF/bean。还有一个用于WAR(WEB-INF/beans.xml)归档。我已经尝试了以下步骤:
有人知道Glassfish/Payara 4.1中是否存在一般错误吗。1.
Thx,伯纳德
不幸的是,这没有帮助。我做了更多的调查,似乎只有“一些”bean无法正确地从BeanManager中注入或检索。此处显示不起作用的类层次结构:
`// AllwaysFalse is our own annotation.
@AllwaysFalse
@Named
public class AllwaysFalseRemoteCondition<E extends IStandardEntity>
extends ConditionBase<javax.persistence.criteria.Predicate, E>
implements RemoteCondition<javax.persistence.criteria.Predicate, E>
{
…
}
// The abstract base class
public abstract class ConditionBase<R, T extends IStandardEntity> implements Condition<R, T> {
}
// The base interface
public interface RemoteCondition<T, E extends IStandardEntity> extends Condition<T, E> {
}
public interface Condition<T, E extends IStandardEntity> extends Part<ConditionDescriptor> {
…
}
如果我将上述类别更改为:
public class AllwaysFalseRemoteBotCondition<E extends IStandardEntity> {
}
注射有效。
如果我尝试通过BeanManager注入bean,如果我执行基于类型的搜索,则getBeans()方法将不起作用:
`BeanManager bm = getBeanManager();
Set<Bean<?>> beans = bm.getBeans(clazz, annotations);
如果我在“class”参数中提供接口类,则返回值始终为null。
解决方案:
Set<Bean<?>> beans = bm.getBeans(
new TypeLiteral<RemoteCondition<javax.persistence.criteria.Predicate,?>>() {}
.getType(),
new AnnotationLiteral<AlwaysFalse>(){}
打字机解决了这个问题!感谢Payara的支持!
下载weld-servlet.jar并放入项目库,或者更好的是,为什么你不使用野蝇?他带着所有的罐子在你的应用程序中运行cdi。
问题内容: 我需要在jar中打包一个配置文件。配置文件位于jar文件的根目录下。但是我收到以下错误: 引起原因:java.lang.IllegalArgumentException:在java.io.File中URI不分层。(未知源) 问题答案: 您应该改用。如果文件嵌入在您的JAR中,则URI最有可能是bundle:// URI
我使用的是SpringContext 5.3.13(没有SpringBoot) 我的问题:当运行jar时,由于jar内的路径不可用,文件找不到。更多信息: 文件本身在jar根目录内(检查了) 例外: 线程“main”组织中出现异常。springframework。豆。工厂BeanDefinitionStoreException:未能分析配置类[com.viber.httpmsecample.App
是否可以在使用关键字创建的类中获取CDIBean的实例?我们目前正在对一个旧的应用程序进行一些增强,每次我们在应用程序中对CDI单例bean进行编程查找时,都会得到一个ContextNotActiveException。 获取参考的代码: BeanManager支持。JAVA
问题内容: 我在eclipse的java项目中具有这样的结构: src / com / myprogram /…/ foo.java res / icon.png 。项目 … 我知道您可以使用以下方式从罐子中加载图像 当您尝试直接使用eclipse运行应用程序时会出现问题,因为(我想)res文件夹不在src文件夹中,则会显示 。我想为源代码和资源提供单独的文件夹。 另外,我发现我可以将文件夹添加到
如何从WEB-INF\lib\someName加载(从代码)所需的文件(*.txt)。罐子 我尝试了机制: 但它仅在所需文件位于WEB-INF\class文件夹中时才起作用。 然后我尝试在jar中使用所需文件创建META-INF\资源文件夹。但它没有生效。
这是我的适配器类。 当添加片段并将它们添加到适配器中的不同arraylist时,我传递了不同的arraylist,当调用get item时,我从arraylist中获取条目并将其作为参数传递给该片段,但当我运行此操作时,我最初只获得所有参数,当我更改选项卡时不会发生任何事情。我试着调试,发现getitem最初只被调用了8次,当我改变viewpager选项卡时,什么也不会发生。我也尝试了fragme