GWT-RPC无法访问servlet

时间:2011-08-26 06:33:30

标签: java gwt build build-process gwt-rpc

我将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 :-|
                    }
                });

任何有关此事的帮助或指导都将不胜感激

2 个答案:

答案 0 :(得分:0)

“是否有必要将WEB-INF / classes(复制的* .class文件)文件夹放入myGwtModuleName?”

为什么不使用maven或ant来部署和构建项目步骤?你通过手工操作会浪费很多时间,而且更容易出错,就像这些错误一样。

我建议您投资使用maven或ant在战争中打包gwt应用程序,并专注于开发gwt应用程序。

答案 1 :(得分:0)

除非你做一些讨厌的事情,否则部署应该像复制整个“war”文件夹一样简单。

注意:您可以安全地从进程中排除WEB-INF/deploy,因为只有使用java.util.logging客户端仿真设置“远程日志记录”时才需要进行堆栈跟踪反模糊处理