2011-07-26 11 views
-1

(StatusCodeException):GWT:RPCの失敗、ここで説明するようにRPCインタフェースはGWTとサーバー間の通信に実施された私のプロジェクトで

http://code.google.com/webtoolkit/doc/1.6/DevGuideServerCommunication.html

すべての既存の方法は、罰金呼び出すことができますが、最近、私

com.google.gwt.user.client.rpc.StatusCodeException: The call failed on the server; see server log for details 
    at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:192) 
    at com.google.gwt.http.client.Request.fireOnResponseReceivedImpl(Request.java:254) 
    at com.google.gwt.http.client.Request.fireOnResponseReceivedAndCatch(Request.java:226) 
    at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:217) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:592) 
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103) 
    at com.google.gwt.dev.shell.moz.MethodDispatch.invoke(MethodDispatch.java:80) 
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) 
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1428) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2840) 
    at com.google.gwt.dev.GWTShell.pumpEventLoop(GWTShell.java:720) 
    at com.google.gwt.dev.GWTShell.run(GWTShell.java:593) 
    at com.google.gwt.dev.GWTShell.main(GWTShell.java:357) 

(ホスト・モードで動作しているときに、このexcecptionのスタックトレースが表示されます):それはRPCの失敗につながる呼び出して新しい方法を導入しました。

は、ここに私が行った変更です:

  1. 私は新しい方法で自分のサービス・インターフェースを拡張:

    @RemoteServiceRelativePath( "MYSERVICE") パブリック・インタフェースMyServiceではRemoteService { //を拡張します.. ブールisSomethingValid(String paramToCheck);私はメソッドの定義を追加

    パブリッククラスPMyServiceImplがGWTSpringControllerがMyServiceで{ //を実装して拡張し...

    public Boolean isSomethingValid(String paramToCheck) { 
        // do something ... 
    } 
    

    }

  2. : }

  3. 私は私のメソッドを実装しました非同期インタフェース:

    public interface e MyServiceAsync { // ... void isSomethingValid(String paramToCheck、AsyncCallbackコールバック); }

これはそれです。私は何か不足していますか?なぜRPC障害が発生するのかについてのヒント?私のサーバーログでは、次の例外を見ることができます:

[7/26/11 11:48:16:618 CEST] 0000004a WebApp  A SRVE0181I: [myapplication.war] [/istoolset] [Servlet.LOG]: Exception while dispatching incoming RPC call: com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.Boolean com.ubs.istoolset.front.fet.gwt.businessmodel.client.service.MyService.isSomethingValid(java.lang.String)' threw an unexpected exception: java.lang.NullPointerException 
     at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:360) 
     at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:546) 
     at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164) 
     at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86) 
     at com.ubs.istoolset.gwt.framework.rpc.GWTSpringController.handleRequest(GWTSpringController.java:48) 
     at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:859) 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793) 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) 
     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1146) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:593) 
     at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:534) 
     at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90) 
     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:764) 
     at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478) 
     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:133) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:450) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:508) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:296) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:270) 
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 
     at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
     at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
     at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205) 
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497) 
Caused by: java.lang.NullPointerException 
     at com.ubs.istoolset.front.fet.gwt.businessmodel.server.MyServiceImpl.isSomethingValid(MyServiceImpl.java:1906) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:618) 
     at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527) 
     ... 27 more 

ご協力いただきありがとうございます!

答えて

1

私はcom.ubs名前空間に慣れていないんだが(あなたのコードということです?)が、あなたのスタックトレース(サーバ側)でこのNullPointerExceptionが問題である:そこに何が起こっているか

Caused by: java.lang.NullPointerException 
     at  com.ubs.istoolset.front.fet.gwt.businessmodel.server.MyServiceImpl.isSomethingValid(MyServiceImpl.java:1906)