我已将我的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
答案 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并将其标记为提供。这将删除类路径中的副本并解决问题。