Java 无法访问Orika class com.sun.proxy
我使用Orika从Java 无法访问Orika class com.sun.proxy,java,scala,java-8,orika,Java,Scala,Java 8,Orika,我使用Orika从Akka类型的actor代理实例映射到DTO,然后从DTO实例映射到代理实例 从Akka-typed-actor代理实例到DTO类的映射很好,但是当我得到DTO实例并且我想转换回Akka-typed-actor代理实例时,Orika抛出一个异常 这是我的代码: TestDaoDTO dto = mapper.map(aggregateRoot, TestDaoDTO.class); TestAggregateRoot other = mapper.map(dto
Akka类型的actor代理实例映射到DTO
,然后从DTO实例映射到代理实例
从Akka-typed-actor代理实例
到DTO
类的映射很好,但是当我得到DTO实例并且我想转换回Akka-typed-actor代理实例时,Orika抛出一个异常
这是我的代码:
TestDaoDTO dto = mapper.map(aggregateRoot, TestDaoDTO.class);
TestAggregateRoot other = mapper.map(dto, aggregateRoot); --> this mapper fail
AggreagateRoot是一个类com.sun.proxy.$Proxy178
例外情况是
ma.glasnost.orika.impl.generator.CompilerStrategy$SourceCodeGenerationException: class com.sun.proxy.$Proxy178 is not accessible
您应该将代理打开到“real”类。此代码可用于此目的:
@SuppressWarnings("unchecked")
private <T> T unwrap(T object) throws Exception {
if (AopUtils.isAopProxy(object) && object instanceof Advised) {
return (T) ((Advised) object).getTargetSource().getTarget();
} else {
return object;
}
}
@SuppressWarnings(“未选中”)
私有T展开(T对象)引发异常{
if(AopUtils.isAopProxy(对象)&&objectinstanceof adviced){
返回(T)((建议的)对象).getTargetSource().getTarget();
}否则{
返回对象;
}
}
未通过此条件(AopUtils.isAopProxy(object)&&object instanceof adviced),我将编辑我的问题,因为此代理类是Akka类型的参与者,当我提到Spring@paul你可能需要为阿克卡找到类似的东西。谷歌搜索它对我来说没有任何用处,但是你可以尝试用反射来研究代理对象——它实现了什么接口?也许会有一个类似于adviced
的Akka接口,让您可以访问包装的对象。Np担心这是因为我安装了Orika的自定义映射器