ฉันไม่แน่ใจว่าสิ่งนี้ควรจะใช้งานได้หรือไม่ แต่ฉันกำลังพยายามเขียนโปรดิวเซอร์ JMS ด้วย cdi ด้วย wildfly และติดอยู่ที่การฉีดทรัพยากรลงใน bean ที่จัดการ cdi:
public class CdiProducer {
@Resource(name = "java:jboss/DefaultJMSConnectionFactory")
@Produces
QueueConnectionFactory qcf;
@Resource(name = "java:/queue/HELLOWORLDMDBQueue")
@Produces
@Hello
Queue helloWordQueue;
เรียกใช้สิ่งนี้ ฉันได้รับข้อผิดพลาดต่อไปนี้:
JBAS016076: เกิดข้อผิดพลาดในการฉีดทรัพยากรลงใน bean ที่จัดการโดย CDI ไม่พบทรัพยากรชื่อ ...
สิ่งที่แปลกมากคือเมื่อฉันคัดลอกและวางทรัพยากรลงใน Enterprise Bean ทุกอย่างก็ใช้งานได้!
@Stateless
public class QueueSender {
@Resource(name="java:jboss/DefaultJMSConnectionFactory")
QueueConnectionFactory qcf;
@Resource(name="java:/queue/HELLOWORLDMDBQueue")
Queue helloWordQueue;
คิวถูกกำหนดเป็น:
<jms-destinations>
<jms-queue name="HelloWorldQueue">
<entry name="/queue/HELLOWORLDMDBQueue"/>
<entry name="java:jboss/exported/queue/HELLOWORLDMDBQueue"/>
</jms-queue>
</jms-destinations>
มันควรจะทำงานแบบนี้เหรอ? หรือเป็นแมลงใน wildfly?
Queue
หรือConnectionFactory
? นอกจากนี้ หากคุณใช้ WildFly 8 คุณสามารถแทรกJMSContext
และหลีกเลี่ยงค่าเริ่มต้นเหล่านี้ได้มากมาย - person John Ament   schedule 19.03.2014