如何访问GWT服务器端代码中的servlet属性?

时间:2013-06-19 00:03:31

标签: java gwt servlets jetty embedded-jetty

我已将我的GWT应用程序组装为war文件,我在嵌入式Jetty-

中运行
String confFile = System.getProperty("configFilename");
config = new XMLConfiguration(configFilename);
Server server = new Server(8080);
WebAppContext webapp = new WebAppContext();
webapp.setAttribute("config", config);      
webapp.setContextPath("/");
webapp.setWar("file.war");
server.setHandler(webapp);
server.start();
server.join();

我正在尝试访问GWT服务器端代码中的“config”对象 -

public class MyServiceImpl extends RemoteServiceServlet implements
        MyService {

    config = (XMLConfiguration) this.getThreadLocalRequest().getAttribute("config");

}

这里,config始终为null。

我做错了什么?我已经尝试了config =(XMLConfiguration) this.getServletContext().getAttribute("config");但这也行不通 - 我得到错误 -

org.apache.commons.configuration.XMLConfiguration cannot be cast to org.apache.commons.configuration.XMLConfiguration

2 个答案:

答案 0 :(得分:1)

您必须从ServletContext而不是HttpServletRequest

获取属性

在RPC方法中尝试:

public class MyServiceImpl extends RemoteServiceServlet implements MyService {

  @Override
  public void MyMethod() {
     this.getThreadLocalRequest()
         .getSession().getServletContext()
         .getAttribute("config");
  }

}

答案 1 :(得分:1)

尝试调整maven依赖项以显式包含包含XMLConfiguration类的jar并将其标记为提供。这将删除类路径中的副本并解决问题。