Deployment of Switchyard application fails with java.lang.NoClassDefFoundError: org/switchyard/component/bean/ReferenceInvoker
Issue
We are using ReferenceInvoker for bean invocation, as we need to enrich the context. The code is similar to this modified sample from the Switchyard quickstarts:
import org.switchyard.component.bean.Reference;
import org.switchyard.component.bean.ReferenceInvocation;
import org.switchyard.component.bean.ReferenceInvoker;
import org.switchyard.component.bean.Service;
@Service(OrderService.class)
public class OrderServiceBean implements OrderService {
@Inject
@Reference("InventoryService")
private ReferenceInvoker service; // USE ReferenceInvoker
@Override
public OrderAck submitOrder(Order order) {
// Create an order ack
OrderAck orderAck = new OrderAck().setOrderId(order.getOrderId());
// Check the inventory
try {
ReferenceInvocation invoker = service.newInvocation("lookupItem").invoke(order.getItemId());
Item orderItem = (Item)invoker.getMessage().getContent();
When this Switchyard application is deployed inside an *.ear archive, the deployment fails with the following error:
12:45:58,134 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.deployment.subunit."switchyard-quickstart-ear-deployment-assembly-1.1.1-p11-redhat-1.ear"."switchyard-quickstart-ear-deployment-order-service-1.1.1-p11-redhat-1.jar".SwitchYardService: org.jboss.msc.service.StartException in service jboss.deployment.subunit."switchyard-quickstart-ear-deployment-assembly-1.1.1-p11-redhat-1.ear"."switchyard-quickstart-ear-deployment-order-service-1.1.1-p11-redhat-1.jar".SwitchYardService: com.google.common.collect.ComputationException: org.jboss.weld.exceptions.WeldException: by java.lang.NoClassDefFoundError: org/switchyard/component/bean/ReferenceInvoker
at org.switchyard.as7.extension.services.SwitchYardService.start(SwitchYardService.java:84)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: com.google.common.collect.ComputationException: org.jboss.weld.exceptions.WeldException: by java.lang.NoClassDefFoundError: org/switchyard/component/bean/ReferenceInvoker
Deploying the same code as plain *.jar works without issues. How can this be resolved?
Environment
- Red Hat JBoss Fuse Service Works
- 6.0.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
