在gwt中读取xls文件

在gwt中读取xls文件,gwt,Gwt,我正在寻找使用gwt RPC读取xls文件,当我使用的代码在正常文件中表现出色时,它无法加载该文件并给我空指针异常 下面是代码 { { 我通过以下代码在客户端程序中调用它: final AsyncCallback<String> callback1 = new AsyncCallback<String>() { public void onSuccess(String result) { RootPanel.get(

我正在寻找使用gwt RPC读取xls文件,当我使用的代码在正常文件中表现出色时,它无法加载该文件并给我空指针异常

下面是代码 { {

我通过以下代码在客户端程序中调用它:

        final AsyncCallback<String> callback1 = new AsyncCallback<String>() {
        public void onSuccess(String result) {
            RootPanel.get().add(new Label("In success"));
            if(result==null)
            {
            RootPanel.get().add(new Label("result is null"));
            }
            RootPanel.get().add(new Label("result is"+result));


        }
           public void onFailure(Throwable caught) {
           RootPanel.get().add(new Label("In Failure"+caught));
           }
        };
        try{
         getService().getNumberOfColumns(callback1);
   }catch(Exception e){}
final AsyncCallback callback1=new AsyncCallback(){
成功时的公共void(字符串结果){
RootPanel.get().add(新标签(“成功”);
如果(结果==null)
{
RootPanel.get().add(新标签(“结果为空”);
}
RootPanel.get().add(新标签(“结果是”+result));
}
失败时的公共无效(可丢弃){
RootPanel.get().add(新标签(“失败中”+catch));
}
};
试一试{
getService().getNumberOfColumns(回调1);
}捕获(例外e){}
}


请告诉我如何解决这个问题,因为代码在正常java文件中运行时运行良好。

为什么使用系统类加载器,而不是正常的类加载器

但是,如果你还想用的话,看看这个

当您像web应用程序一样使用时。在这种情况下,您需要使用
ClassLoader
,其获得方式如下:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
这个类可以访问绑定到相关Web应用程序的所有类路径,您不再依赖于哪个父类加载器(一个Web应用程序有多个!)加载了您的类

然后,在此类加载器上,您只需调用getResourceAsStream()以获取类路径资源作为流,而不是getSystemResourceAsStream(),后者取决于Web应用程序的启动方式。您不希望依赖于此,因为您在外部主机上无法控制它:

InputStream input = classLoader.getResourceAsStream("filename.extension");
文件的位置应该在
类路径中

InputStream input = classLoader.getResourceAsStream("filename.extension");