这几天在调试利用felix和ipojo发布分布式bundle,中间经历了一些问题,继续一下

  1. 发布了分布式bundle后,怎么也访问不了wsdl文件

解决办法:

  • 在pom.xml中,将依赖:org.apache.felix:org.apache.felix.ipojo.annotations的scope改为default,让运行时也能用上该功能。
  • 在pom.xml中,将插件:org.apache.felix:maven-bundle-plugin加上<Import-Package>*</Import-Package>。
  • 将metadata.xml中的component元素直接去掉。
  • 在代码里,需要注入参数的地方,直接加上@Requires.
  • 放弃把bundle文件拷贝到felix服务器bundle目录中的做法,手动安装。

2.在服务消费端,在可以访问服务端wsdl前提下,开始调试,发现注入的属性值为空

解决办法:

  • 单一化注入方式:只采用metadata.xml注入的方式,将requires写在metadata.xml文件里,而不写在程序里。
  • 注意agent的使用,专门有个bundle包,他负责将访问转到指定的地点,那么这个包一定要打包进来,他的remote-services.xml中给出了服务提供方地址。