Restlet jse2客户端资源接口在类加载器中不可见



我在Google App Engine中为我的Restlet服务器遵循本教程:http://wiki.restlet.org/docs_2.0/13-restlet/21-restlet/318-restlet/303-restlet.html它与GWT客户端一起工作得很好。

现在我正在尝试用OSGi和Restlet构建一个jse2桌面客户端。

OSGi包中的Restlet客户端代码与教程中提供的代码保持一致。

当我启动OSGi Felix框架时,我也启动了导出restlet框架包的org.restlet.jar包,我用教程中给出的代码启动了一个包:

ClientResource cr = new ClientResource("localhost:8888/contacts/123");
// Get the Contact object
ContactResource resource = cr.wrap(ContactResource.class);
Contact contact = resource.retrieve();

contactresource接口与bundle激活器在同一个包中,但我仍然得到这个奇怪的消息:java.lang。接口nll .nhl.minor.crm.desktop.restlet. contactresource从类加载器

不可见

这个问题与OSGi或Restlet有关吗?我该如何解决这个问题呢?

OSGi包的manifest文件由maven包插件创建。

加载类的正确方法很简单:

ClientResource cr = new ClientResource("http://127.0.0.1:8888/contacts/123");
Class<ContactResource> clazs = (Class<ContactResource>) cr.getClass().getClassLoader().loadClass("your.package.name.ClassName");
cr.wrap(clazs);

这个解决方案给了你另一个问题,类不是由组织导入的。restlet包。

查看import package而不编辑org中的manifest文件。请回答我关于那个问题的问题。

最新更新