有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将GWT RequestFactory与Grails一起使用时出现java类加载器问题

为了让GWT RequestFactory与Grails一起运行,我使用以下方法:

class GwtController extends RequestFactoryServlet {

    public GwtController() {
        super()
    }

    def index = {
        doPost request, response
    }

    @Override
    public ServletContext getServletContext() {
        return ServletContextHolder.servletContext
    }

    @Override
    public ServletConfig getServletConfig() {
        return new DummyServletConfig(getServletContext(),"grails");
    }
}

其中,DummyServletConfig是ServletConfig的一个简单实现

这在将应用程序部署到tomcat时起作用。然而,使用测试或开发模式,情况并非如此。我被要求调整GWT Servlet,以防止它使用错误的类装入器:

第46行我换了

private static final RequestFactoryInterfaceValidator validator =
  new RequestFactoryInterfaceValidator(log,
      new RequestFactoryInterfaceValidator.ClassLoaderLoader(
          ServiceLayer.class.getClassLoader()));

private static final RequestFactoryInterfaceValidator validator = new RequestFactoryInterfaceValidator(
  log, new RequestFactoryInterfaceValidator.ClassLoaderLoader(
      Thread.currentThread()
                        .getContextClassLoader()));

否则,它将找不到我的域类(它们显然不在GrailsRootLoader中,而是在线程的类装入器中)

现在,我想将我的GWT servlet恢复为Google发布的官方二进制文件,我想知道如何在不改变GWT源代码的情况下修复Grails中不正确的类加载器或使RequestFactoryServlet正常工作


共 (1) 个答案