2017-02-03 9 views
1

, J2EE의이 기능을 사용하기 위해 JCA 어댑터를 사용하여 외부 저장소에 연결하려고합니다.내 시나리오에서 JCA 커넥터 클래스 로딩

저는 JBoss EAP 7과 그것의 구현 된 구현 인 ironjacamar를 사용합니다.

가 나는 adapter.jar (이것은 ConnectionConnectionFactory 인터페이스 및 모든 구현을 포함) 및 META-INF/ironjacamar.xml 포함 된 adapter.rar를 배포. 이 런타임에 모든 클래스의 알 필요로 (NoClassDefFound을 -

@RequestScoped 
public class Bean { 
... 
    @Resource(lookup = "java:/eis/StorageConnectionFactory") 
     private StorageConnectionFactory connectionFactory; 
} 

이 전쟁은 또한 도서관과 adapter.jar이 포함

난 후 주석 필드와 콩을 포함하는 app.war 파일을 배포 등) 내 놀랍게도

는 커넥터 자체가 작동하는 것 같다 - 예외를 얻을 수 있습니다으로 :

java.lang.IllegalArgumentException가 : conn.H에 conn.StorageConnectionFactoryImpl 필드 Bean.connectionFactory를 설정할 수 없습니다

심지어 인터페이스를 ommitting에 smConnectionFactoryImp

:

@Resource(lookup = "java:/eis/StorageConnectionFactory") 
    private StorageConnectionFactoryImpl connectionFactory; 

을 여전히

java.lang.IllegalArgumentException: Can not set conn.StorageConnectionFactoryImpl field Bean.connectionFactory to conn.HsmConnectionFactoryImp 

나는 문제가 adapter.rar가 NTO app.war와 같은 클래스 로더를 공유 않는다는 점이라고 볼 그리고 두 클래스 모두 해당 클래스를 포함하고 있으므로 일종의 ClassCastException이 발생합니다. 어떻게이 문제를 올바르게 해결할 수 있습니까?

답변