我将gwt模块集成到现有的Web应用程序中并部署在jboss上。
当我试图点击gwt_servlet然后我收到关于asynccallback失败方法的错误消息,即 请求的资源(/ warFileName / GWTAPPS / myGwtModuleName / GWTServletName)不可用。
我的战争包含如下
GWTAPPS :
myGwtModuleName (文件夹):(文件夹包含 - >)高级,css,gwt,images文件夹和一些* .cache.png文件myGwtModule.html,myGwtModule.css
WEB-INF - > 部署 - myGwtModuleName
我将已编译的gwt_servlet文件复制到/ warFileName / GWTAPPS / myGwtModuleName /仍然得到相同的错误,即资源不可用。
是否有必要将WEB-INF / classes(复制的* .class文件)文件夹放入myGwtModuleName?中。 例如warfilename \ GWTAPPS \ mygwtmodule \ WEB-INF \ classes
在部署中也有一些时间例外 java.lang.NoClassDefFoundError:com / google / gwt / user / client / rpc / RemoteService
** web.xml#**
中的gwt_servlet条目gwtmodule中没有这个web.xml是这个问题吗?
<的servlet> < servlet的名称>&GWTServletName LT; / servlet的名称> < servlet-class> ui.mygwtmodule.server.BasicUpdateServiceImpl< / servlet的类> < / servlet的> < servlet-mapping>
< servlet-name>GWTServletName< /servlet-name> < url-pattern>/GWTServletName< /url-pattern> < /servlet-mapping>
还使用了像myGwtModuleName / GWTServletName
这样的url模式在BasicUpdateService中添加RemoteServiceRelativePath
@RemoteServiceRelativePath( “GWTServletName”)
public interface BasicUpdateService扩展了RemoteService
创建了一个远程服务代理,与服务器端GWTMassUpdate服务进行通信。
private final BasicUpdateServiceAsync basicUpdateService = GWT .create(BasicUpdateService.class);
服务器调用
basicMassUpdateService.makeServreCall(“vaibhav”,new AsyncCallback(){
@Override
public void onSuccess(String result) {
Window.alert("Result = "+result);
}
@Override
public void onFailure(Throwable caught) {
Window.alert("On Failure :"+caught);
// No resource available :-|
}
});
任何有关此事的帮助或指导都将不胜感激
答案 0 :(得分:0)
“是否有必要将WEB-INF / classes(复制的* .class文件)文件夹放入myGwtModuleName?”
是
为什么不使用maven或ant来部署和构建项目步骤?你通过手工操作会浪费很多时间,而且更容易出错,就像这些错误一样。
我建议您投资使用maven或ant在战争中打包gwt应用程序,并专注于开发gwt应用程序。
答案 1 :(得分:0)
除非你做一些讨厌的事情,否则部署应该像复制整个“war”文件夹一样简单。
注意:您可以安全地从进程中排除WEB-INF/deploy
,因为只有使用java.util.logging
客户端仿真设置“远程日志记录”时才需要进行堆栈跟踪反模糊处理