source

WELD-000072 수동화 범위를 선언하는 관리 빈은 수동화가 가능해야 합니다.

gigabyte 2022. 11. 8. 21:09
반응형

WELD-000072 수동화 범위를 선언하는 관리 빈은 수동화가 가능해야 합니다.

간단한 프로그램을 자바 웹 형태로 작성했는데 다음과 같은 오류가 나타납니다.

WELD-000072 수동화 스코프를 선언하는 관리 빈은 수동화가 가능해야 합니다.빈 : 관리빈 [클래스]BeanPakage.DemoBeans[ ] 한정자 포함 [ 。@Any @Default @Named]

이 에러가 어디서 발생하는지 말씀해 주실 수 있나요?

import javax.enterprise.context.SessionScoped;
import javax.inject.Named;


@Named("DemoBeans")
@SessionScoped
public class DemoBeans {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Serializable 인터페이스를 구현하면 빈 패시베이션이 가능합니다.

public class DemoBean implements Serializable { ... }

수동화가 가능하기 위해서는 더 많은 요건이 있습니다.자세한 내용은 용접 설명서를 참조하십시오.

CDI bean을 시리얼화할 수 있는데도 오류가 발생할 수 있습니다.

WELD-000072 Managed bean declaring a passivating scope must be passivation capable

클래스 예:

@Named
@ConversationScoped
public class TransactionMatchController implements Serializable {
    ...
}

모든 @Interceptors가 분리 가능한 것을 확인합니다.

@Interceptor
@Transactional
public class TransactionInterceptor implements Serializable {
    ...
}

직렬화 가능해야 합니다.

이 답을 보세요.

https://community.jboss.org/thread/179828

베스트 앤더스

만들다DemoBeans 시리얼화된

@Named("DemoBeans")
@SessionScoped
public class DemoBeans  implements Serializable
{

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

주석을 사용하여 콩의 수동 동작을 활성화할 수도 있습니다.

@Stateful(수동 가능=true)

이 경우는, 시리얼 가능한 인터페이스를 실장할 필요는 없습니다.

안부 전해요.호르헤

Import 확인

(때로는 netbean이 다른 라이브러리의 다른 것을 사용하기도 합니다.)

예.javax.faces.view를 Import합니다.ViewScoped.javax.faces.bean을 Import하여 변경합니다.표시 범위

원인: org.jboss.weld. 예외.도입예외: WELD-000072:수동화 범위를 선언하는 빈은 수동화가 가능해야 합니다.Bean : Managed Bean [클래스 com.marcos.controller]수식자 [@Default @Named @Any]가 있는 PersonaBean]


내가 풀었어, CDI. 콩을 못알아봤지, 그냥 좀 더 분명히 했을 뿐이야.

@Named
@ViewScoped
public class PersonaBean  implements Serializable {
@Inject
private IPersonaService service;
public void registrar() {

    try {
        service.registrar(null);

    }catch (Exception e) {
        e.printStackTrace();
    }
  }
}

솔루션을 제안합니다.

@Named ("PersonaBean")
@ViewScoped
public class PersonaBean  implements Serializable {
@Inject
private IPersonaService service;
public void registrar() {

    try {
        service.registrar(null);

    }catch (Exception e) {
        e.printStackTrace();
    }
  }
}

언급URL : https://stackoverflow.com/questions/9760442/weld-000072-managed-bean-declaring-a-passivating-scope-must-be-passivation-capab

반응형