2014-09-29 3 views
1

Я работаю над швом и пытаюсь внедрить компонент шва с помощьюатрибута Шов @in требует непустого значение

@Name("myBeanClass")   
@Scope(ScopeType.CONVERSATION) 
public class MyBeanClass { 
    start(); 
} 

и пытаюсь использовать вышеуказанную start(), используя ниже кода из другого класса

@In(create = true, required = false, value = "myBeanClass") 
protected MyBeanClass myBeanClass 
public Class TestClass { 
    public void start() {  
     myBeanClass.start(); 
    } 
} 

Я даже пытался, изменяя тип области в MyBeanClass для Sesson и т.д., до сих пор он дает мне тот же eception

12:34:43,233 WARN [org.jboss.seam.Component] [http-localhost%2F127.0.0.1-8080-2] Cannot create Seam component, scope is not active: favoriteManager(PAGE) 
12:34:43,240 WARN [org.jboss.seam.Component] [http-localhost%2F127.0.0.1-8080-2] Cannot create Seam component, scope is not active: favoriteManager(PAGE) 
12:34:53,081 ERROR [org.jboss.aspects.tx.TxPolicy] [http-localhost%2F127.0.0.1-8080-2] javax.ejb.EJBTransactionRolledbackException: @In attribute requires non-null value: myBeanClass.favoriteManager 
12:34:53,093 ERROR [STDERR] [http-localhost%2F127.0.0.1-8080-2] 

    javax.ejb.EJBTransactionRolledbackException: @In attribute requires non-null value: orgUnitUpdateManager.favoriteManager 
    12:34:53,094 ERROR [STDERR] [http-localhost%2F127.0.0.1-8080-2]  at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:115) 
    12:34:53,094 ERROR [STDERR] [http-localhost%2F127.0.0.1-8080-2]  at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130) 
    12:34:53,094 ERROR [STDERR] [http-localhost%2F127.0.0.1-8080-2]  at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:194) 
    12:34:53,140 ERROR [STDERR] [http-localhost%2F127.0.0.1-8080-2]  at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
    12:34:53,140 ERROR [STDERR] [http-localhost%2F127.0.0.1-8080-2]  at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) 
    12:34:53,140 ERROR [STDERR] [http-localhost%2F127.0.0.1-8080-2]  at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
    12:34:53,140 ERROR [STDERR] [http-localhost%2F127.0.0.1-8080-2]  at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) 

А также я могу придать другой класс из того же класса, и я терпел неудачу только в случае инъекционного myBeanClass

Может ли один предложить, если я пропустил какие-либо вещи?

И я уверен, что имя боб и имя переменной такие же

ответ

3

я решил вышеуказанную проблему. Здесь нет проблем с инъекцией, но проблема в MyBeanClass. Мы впрыскиваем еще один компонент под названием MyBeanManager в MyBeanClass, к которому шов не может впрыснуть, я разрешил вышеуказанную проблему двумя способами:

1) Удалив инъекцию FavoriteManager (если он не используется в вашем компоненте)

2) Ранее я был введен FavoriteManager, как

@In(create = true)  
private MyBeanManager favoriteManager; 

изменено на

@In(create = true,required = false, value = "favoriteManager")  
private MyBeanManager favoriteManager; 
+0

Woow. Уберем свою жизнь !!! –