2013-09-10 2 views
0

Ошибка при развертывании приложения с Jbpm, интегрированным с zkoss и EJB. может кто-нибудь помочь ??? Я использую JBoss 7.1.1 final.Неудовлетворенные зависимости для типа UserGroupCallback: при развертывании моего приложения

ошибка:

Unsatisfied dependencies for type [UserGroupCallback] with qualifiers [@Default] at injection point [[field] @Inject private org.jbpm.services.task.identity.AbstractUserGroupCallbackDecorator.userGroupCallback] 

вот StackTrace:

15:36:06,393 INFO [org.jboss.solder.exception.control.extension] (MSC service thread 1-2) Adding handler Qualifiers: [@javax.enterprise.inject.Any()] TraversalMode: BREADTH_FIRST Handles Type: class java.lang.Throwable Precedence: -100 [method] public org.jboss.seam.transaction.SimpleTransactionExceptionHandler.markTransactionRollback(CaughtException<Throwable>) to known handlers 
    15:36:06,704 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.deployment.unit."NewJbpm2MavenProject-1.0.war".WeldService: org.jboss.msc.service.StartException in service jboss.deployment.unit."NewJbpm2MavenProject-1.0.war".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [UserGroupCallback] with qualifiers [@Default] at injection point [[field] @Inject private org.jbpm.services.task.identity.AbstractUserGroupCallbackDecorator.userGroupCallback] 
     at org.jboss.as.weld.services.WeldService.start(WeldService.java:83) 
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 
     at 
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25] 
     at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25] 
    Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [UserGroupCallback] with qualifiers [@Default] at injection point [[field] @Inject private org.jbpm.services.task.identity.AbstractUserGroupCallbackDecorator.userGroupCallback] 
     at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:275) 
     at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:244) 
     at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:107) 
     at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:127) 
     at org.jboss.weld.bootstrap.Validator.validateDecorators(Validator.java:391) 
     at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:329) 
     at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:366) 
     at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:83) 
     at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) 
     ... 5 more 

    15:36:06,914 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "NewJbpm2MavenProject-1.0.war" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"NewJbpm2MavenProject-1.0.war\".WeldService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"NewJbpm2MavenProject-1.0.war\".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [UserGroupCallback] with qualifiers [@Default] at injection point [[field] @Inject private org.jbpm.services.task.identity.AbstractUserGroupCallbackDecorator.userGroupCallback]"}} 
    15:36:06,922 INFO [org.jboss.as.jpa] (MSC service thread 1-4) JBAS011403: Stopping Persistence Unit Service 'NewJbpm2MavenProject-1.0.war#PersonDEMO-PU' 
    15:36:06,992 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015877: Stopped deployment NewJbpm2MavenProject-1.0.war in 78ms 
    15:36:06,994 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report 
    JBAS014777: Services which failed to start:  service jboss.deployment.unit."NewJbpm2MavenProject-1.0.war".WeldService: org.jboss.msc.service.StartException in service jboss.deployment.unit."NewJbpm2MavenProject-1.0.war".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [UserGroupCallback] with qualifiers [@Default] at injection point [[field] @Inject private org.jbpm.services.task.identity.AbstractUserGroupCallbackDecorator.userGroupCallback] 

    15:36:06,995 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"NewJbpm2MavenProject-1.0.war\".WeldService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"NewJbpm2MavenProject-1.0.war\".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [UserGroupCallback] with qualifiers [@Default] at injection point [[field] @Inject private org.jbpm.services.task.identity.AbstractUserGroupCallbackDecorator.userGroupCallback]"}}}} 

ответ

2

вы должны реализовать свой собственный UserGroupCallback класс ... что-то вроде этого:

import java.util.ArrayList; 
import java.util.List; 

import javax.enterprise.inject.Alternative; 

import org.kie.internal.task.api.UserGroupCallback; 


@Alternative 
public class MyUserGroupCallback implements UserGroupCallback { 

    public boolean existsGroup(String groupId) { 
     return true; 
    } 

    public boolean existsUser(String userId) { 
     return true; 
    } 

    public List<String> getGroupsForUser(String userId, List<String> groupIds, List<String> allExistingGroupIds) { 
     List<String> l = new ArrayList<String>(); 
     return l; 
    } 

} 

А затем обеспечить Producer вашей: РЕАЛИЗАЦИИ

import javax.enterprise.context.ApplicationScoped; 
import javax.enterprise.inject.Produces; 
import javax.inject.Inject; 
import javax.persistence.EntityManagerFactory; 
import javax.persistence.Persistence; 
import javax.persistence.PersistenceUnit; 

import org.jbpm.runtime.manager.impl.RuntimeEnvironmentBuilder; 
import org.jbpm.runtime.manager.impl.cdi.InjectableRegisterableItemsFactory; 
import org.kie.api.io.ResourceType; 
import org.kie.internal.io.ResourceFactory; 
import org.kie.internal.runtime.manager.RuntimeEnvironment; 
import org.kie.internal.runtime.manager.cdi.qualifier.PerProcessInstance; 
import org.kie.internal.runtime.manager.cdi.qualifier.PerRequest; 
import org.kie.internal.runtime.manager.cdi.qualifier.Singleton; 
import org.kie.internal.task.api.UserGroupCallback; 

@ApplicationScoped 
public class SimpleProcessRuntimeProducer { 
    @SuppressWarnings("cdi-ambiguous-dependency") 
    @Inject 
    private InjectableRegisterableItemsFactory factory; 

    @Inject 
    private UserGroupCallback usergroupCallback; 

    @Produces 
    public UserGroupCallback produceUserGroupCallback() { 
     return usergroupCallback; 
    } 

    @PersistenceUnit(unitName = "unitname") 
    private EntityManagerFactory emf; 

    @Produces 
    public EntityManagerFactory produceEntityManagerFactory() { 
     if (this.emf == null) { 
      this.emf = Persistence 
        .createEntityManagerFactory("unitname"); 
     } 
     return this.emf; 
    } 

    @Produces 
    @Singleton 
    @PerProcessInstance 
    @PerRequest 
    public RuntimeEnvironment produceEnvironment(EntityManagerFactory emf) { 

     RuntimeEnvironment environment = RuntimeEnvironmentBuilder 
       .getDefault() 
       .entityManagerFactory(emf) 
       .userGroupCallback(usergroupCallback) 
       .registerableItemsFactory(factory) 
       .addAsset(ResourceFactory.newClassPathResource("process.bpmn"),ResourceType.BPMN2) 
       .get();  
     return environment; 
    } 
} 

Надеется, что это помогает

0

У вас есть jbpm-человек-проблемно-ядро в вас ?? пути к классам (? В войне или в LIBS сервера приложений)

+0

Да, у меня есть jbpm-человек-задача-ядро в пути к классам, я использую Maven для проекта, так что я добавил зависимостей для jbpm-человек-задача-ядра. –

Смежные вопросы