gpt4 book ai didi

java - 尝试将 GWT 集成到 OSGi 包中

转载 作者:行者123 更新时间:2023-11-30 05:03:04 25 4
gpt4 key购买 nike

我正在尝试将 GWT 与 OSGi (Equinox) 集成,为我的模块化系统的其余部分提供基于 Web 的 UI。到目前为止,我已经成功地将 GWT servlet 嵌入到 OSGi 模块中。

我使用的是Eclipse GWT插件生成的GWT示例代码项目,它由3个包组成:客户端、服务器和共享。服务器包(ui.server.GreetingServiceImpl)中的类实现了客户端包(ui.client.GreetingService)中的接口(interface),并且它们都在同一个包中捆绑。

当我尝试从客户端网页进行远程过程调用时,出现错误:

IncompleteRemoteServiceException:无法在默认类加载器中找到请求的接口(interface)“ui.client.GreetingService”

我发现类加载器未找到该类,但我不知道如何解决此问题。我可以通过请求或导入其他包中的类来访问它们,但不能访问与实现类位于同一包中的接口(interface)。有人能指出我正确的方向吗?我已经用谷歌搜索了好几个小时了。

最佳答案

需要在 GreetingServiceImpl 上重写 HttpServlet 中的“service”方法:

@Override 
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// Cache the current thread
Thread currentThread = Thread.currentThread();
// We are going to swap the class loader
ClassLoader oldContextClassLoader =
currentThread.getContextClassLoader();
currentThread.setContextClassLoader(this.getClass().getClassLoader());
super.service(req, resp);
currentThread.setContextClassLoader(oldContextClassLoader);
}

因此,应用程序在 Equinox 上运行!!

关于java - 尝试将 GWT 集成到 OSGi 包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6010713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com