weibocom / motan

A cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services.
Other
5.89k stars 1.78k forks source link

配合Spring-data-jpa使用的问题 #132

Closed wydream closed 8 years ago

wydream commented 8 years ago

在client调用就会出现“Exception caught when method invoke: java.lang.NullPointerException”,只要是通过jpa拿数据的地方,都会。而且错误应该是出在服务端的,是不是不兼容?

rayzhang0603 commented 8 years ago

感谢反馈,我们测试一下。看异常应该server端具体实现类在进行invoke的时候遇到npe,能在具体描述一下server端的使用方式吗?server端的具体实现类bean是如何配置的?

wydream commented 8 years ago

@rayzhang0603 就是最普通的方式,一个User类 public interface UserRepository extends JpaRepository<User, Long> { }

public interface UserService { User getUserById(Long id); }

Impl里面 public User getUserById(Long id) { return userRepository.findOne(id); }

feilaoda commented 8 years ago

UserRepository没有通过spring注入?

wydream commented 8 years ago

@feilaoda 注入了的

rayzhang0603 commented 8 years ago

经过测试,motan和spring-data-jpa是兼容的。你异常中的npe应该是server使用的UserRepository没有正确注入,可以通过debug来进行确认UserRepository是否为空。 motan和其他使用spring bean方式的项目结合时,需要重点确认motan和其他spring bean是否在同一个spring context中,可以从motan的xml加载方式、其他spring bean的加载方式进行排查。如果是注解类型的,一般需要添加@ImportResource("classpath:motan_server.xml")引入motan中的bean