问题标签 [jboss-weld]

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 投票
2 回答
2187 浏览

java - 焊接中外部(第 3 方)bean 的分辨率

我知道它仍然不是很流行,因为该规范是在几个月前发布的。

我还没有“安装”焊接,我只是在阅读,通过这个问题,我想确保我已经正确理解了这一点:

是否通过将 3rd-party jar 中的 bean 声明为<alternatives>您的beans.xml?

如果没有,如何使用 3rd 方库中没有的 bean beans.xml

beans.xml除非在他们的 jar 中,否则将 jar 放在类路径上是行不通的META-INF,对于 3rd 方 jar,您无法做到这一点。(请参阅Gavin King 关于该主题的帖子

0 投票
5 回答
11339 浏览

jakarta-ee - Java EE 6 CDI 实现之间的差异

我查看了 JBoss 的 JSR-299 上下文和依赖注入的焊接参考实现,我想知道其他 CDI 实现之间的比较。具体来说,我了解 Weld、Resin CanDI(由 Caucho 编写)和 Apache OpenWebBeans。

0 投票
3 回答
3367 浏览

jakarta-ee - 如何为一个类实例化多个 CDI/Weld bean?

在 Spring 中,可以通过在 xml conf 中定义相应的 bean 来实例化任何类。还可以为具有不同参数的同一类实例化多个 bean .....

CDI 中是否也有这样的功能,即是否可以使用不同的初始化参数创建同一类的不同实例?

是否也可以在不更改类的情况下创建 bean....我的意思是不添加注释?

添加

让我举个例子。

如何实例化同一类的两个实例并用不同的字段值初始化它们?

0 投票
1 回答
1223 浏览

java - 休眠失败映射两个表

我想了解这是怎么可能的:在我使用一个表之前一切正常,当我映射另一个表时它会失败,如下所示:

玻璃鱼开始

配置

表格1

表2

连接的东西...

`

你有什么建议吗?

0 投票
3 回答
1052 浏览

java - 在 Weld (JSR-299 RI) 中使用 @Inject 进行依赖注入。如何找到对应的@Produces?

我已经使用 JSR-299 参考实现“焊接”,目的是在独立应用程序中使用它,并且我查看了文档,并惊叹于它的魔力。

我的问题是如何找到要被@Inject 的给定对象的生产者?

java编译器为类加载器很容易找到的注释生成提示,或者必须遍历完整的类路径以加载所有类以查看它们的作用,这对我来说听起来效率很低,或者它是一种完全不同的方法。

诀窍是什么?

0 投票
6 回答
23127 浏览

java - Google Guice 与 JSR-299 CDI / Weld

Weld 是 JSR-299 上下文和依赖注入参考实现,它认为自己是 Spring 和 Guice 的一种继承者。

CDI 受到许多现有 Java 框架的影响,包括 Seam、Guice 和 Spring。然而,CDI 有它自己非常独特的特点:比 Seam 更类型安全,比 Spring 更有状态且更少以 XML 为中心,比 Guice 更有 Web 和企业应用程序能力。但是,如果没有上述框架的启发以及 JSR-299 专家组 (EG) 的大量协作和辛勤工作,就不可能有这些。

http://docs.jboss.org/weld/reference/latest/en-US/html/1.html

与 Guice 相比,是什么让 Weld 更适合企业应用?与Guice相比有什么优点或缺点吗?与 Weld 拦截器相比,您如何看待 Guice AOP?性能呢?

我的选择

最后我决定使用 Guice,因为我喜欢干净的编程模型,它默认除了 @Inject 之外几乎没有注释。在 Guice 中使用外部库比使用 CDI 容易得多。Guice 的 AOP 也非常简单。

0 投票
4 回答
2525 浏览

web-services - 注射记录仪,焊接

我正在尝试通过一些注入替换标准记录器初始化

1-st。

我试图 在无状态 bean/webservices 中使用焊接焊接记录

但它对我不起作用..我得到 java.lang.reflect.InvocationTargetException

javax.servlet.ServletException: org.glassfish.webservices.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:326) 的 java.lang.reflect.InvocationTargetException org.glassfish.webservices.monitoring.WebServiceTesterServlet.invoke(WebServiceTesterServlet.java:102) ) 在 com.sun.grizzly.http.servlet.FilterChainImpl.doFilter( FilterChainImpl.java:195) 在 com.sun.grizzly.http.servlet.FilterChainImpl.invokeFilterChain(FilterChainImpl.java:139) 在 com.sun.grizzly.http.servlet.ServletAdapter.doService(ServletAdapter.java:376) 在 com .sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:329) 位于 com.sun.grizzly.tcp.http11.GrizzlyAdapter。com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100) 上的服务(GrizzlyAdapter.java:166) com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java: 245) 在 com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) 在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) 在 com.sun.grizzly.http.ProcessorTask .process(ProcessorTask.java:954) 在 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 在 com.sun。 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 上的 com.sun.grizzly.http.HttpProtocolChain 上的 grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)。在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 在 com.sun.grizzly.ContextTask.doCall(ProtocolChainContextTask.java:53) 执行(HttpProtocolChain.java:76) .run(ContextTask.java:69) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309 ) 在 java.lang.Thread.run(Thread.java:619) 引起:java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.glassfish.webservices.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:297) ... 24 更多原因:javax.xml.ws.soap.SOAPFaultException:com.sun.xml 中的 javax.ejb.EJBException .ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:189) 在 com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130) 在 com.sun.xml.ws.client.sei.SyncMethodHandler .invoke(SyncMethodHandler.java:119) 在 com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89) 在 com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub .java:140) at $Proxy484.sayHello(Unknown Source) ... 29 更多原因:com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5070) at com.sun 的 javax.ejb.EJBException .ejb.containers.BaseContainer。com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4756) 的 completeNewTx(BaseContainer.java:4968) com.sun.ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:200) 的 $Proxy464。 sayHello(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java。 lang.reflect.Method.invoke(Method.java:597) at org.glassfish.webservices.InvokerImpl.invoke(InvokerImpl.java:78) at org.glassfish.webservices.EjbInvokerImpl.invoke(EjbInvokerImpl.java:78) at com .sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146) 在 com.sun.xml.ws.server.sei.EndpointMethodHandler。在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber. java:629) 在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)在 com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470) 在 com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:112) 在 org .glassfish.webservices.MonitoringPipe.process(MonitoringPipe.java:138) 在 com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115) 在 com.sun.xml.ws.api .pipe.Fiber.__doRun(Fiber.java:629) 在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588) 在 com.sun.xml.ws.api.pipe.Fiber .doRun(Fiber.java:573) 在 com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470) 在 com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:112) 在 com.sun.xml.ws.tx.service.TxServerPipe.process(TxServerPipe.java: 306) 在 com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115) 在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629)在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573) 在 com.sun .xml.ws.api.pipe.Fiber.runSync(Fiber.java:470) 在 com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:112) 在 com.sun.enterprise .security.webservices.CommonServerSecurityPipe.processRequest(CommonServerSecurityPipe.java:195) 在 com.sun.enterprise.security.webservices.CommonServerSecurityPipe.process(CommonServerSecurityPipe.java:127) 在 com.sun.xml.ws.api。pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115) 在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629) 在 com.sun.xml.ws.api.pipe。 Fiber._doRun(Fiber.java:588) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573) 在 com.sun.xml.ws.api.pipe.Fiber.runSync( Fiber.java:470) 在 com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:295) 在 com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java :519) 在 com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:288) 在 com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:143 ) 在 org.glassfish.webservices.Ejb3MessageDispatcher.invoke(Ejb3MessageDispatcher.java:87) 的 org.glassfish.webservices.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:116)。webservices.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:196) at org.glassfish.webservices.EjbWebServiceServlet.service(EjbWebServiceServlet.java:127) ... 22 更多原因:java.lang.NullPointerException at ua.eset.inferno.heresy .ws.security.Hello.sayHello(Hello.java:33) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1056) 在 org.glassfish。 com.sun.ejb.containers.BaseContainer 中的 ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1128)。com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) 上 com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) 上的 invokeBeanMethod(BaseContainer.java:5243) .ejb.EjbInvocation.proceed(EjbInvocation.java:567) 在 com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:157) 在 com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy .java:139) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java. lang.reflect.Method.invoke(Method.java:597) 在 com.sun.ejb.containers.interceptors。com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) 上的 AroundInvokeInterceptor.intercept(InterceptorManager.java:858) com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java: 367) 在 com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5215) 在 com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5203) 在 com.sun.ejb.containers.WebServiceInvocationHandler .invoke(WebServiceInvocationHandler.java:188) ... 66 更多__intercept(BaseContainer.java:5215) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5203) at com.sun.ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:188) ... 66更多的__intercept(BaseContainer.java:5215) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5203) at com.sun.ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:188) ... 66更多的

错过了什么?

第二次

比我尝试引用this的本教程-自定义注入

但这也无济于事。

Maven 依赖项 -

Q1:ejb / web services中weld Logger注入的规则是什么?

Q2:会不会是 wsdl/EJB/WebService 问题?

0 投票
5 回答
82571 浏览

jsf - JSF 2.0:对 selectOneMenu 使用枚举值

我正在使用 JSF 2.0 并想用我的枚举值填充 selectOneMenu。一个简单的例子:

不幸的是,我不能在我当前的项目中使用 Seam,它有一个很好的<s:convertEnum/>标签来完成大部分工作。在 Seam 中,要使用 Enum 的值,我必须编写以下标记(并创建一个提供#{genderValues}

结果是我不必再在标记中明确声明枚举值。我知道这在 JSF <2.0 中并不容易,但是 JSF2 中是否有任何新功能可以帮助解决这个问题?或者 Weld 在这里有什么帮助?如果 JSF2 中没有什么新东西,那么在 JSF 1.2 中最简单的方法是什么?

或者我什至可以集成 Seam JSF 标签和相应的 Seam 类以在 JavaEE6-App 中获得相同的功能(没有 Seam 容器)?

0 投票
4 回答
23623 浏览

jsf - 由于 CDI/Weld 中的 @Named,@ManagedBeans 在 JavaEE6 中过时了吗?

由于 CDI(及其实现 Weld),JEE6 中的每个 POJO 都可以用 注释@Named,这使得 POJO 可以访问视图。

这是否意味着 ManagedBeans 现在已经完全过时了?还是我错过了@ManagedBean仍然有意义的东西?

0 投票
2 回答
1311 浏览

jsf - CDI 超时导致 NPE

有没有办法(在 JSF 2 中)捕获会话超时并将用户重定向到新页面?当对话超时时,我得到了令人讨厌的 NullPointerExceptions。

我可以在所有 NPE 上重定向用户,但这似乎是一个太大的网络。