classNotFoundException GWTBridge [英] classNotFoundException GWTBridge

查看:164
本文介绍了classNotFoundException GWTBridge的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用gwt webapp



,并且在尝试从移除servlete中的URL获取XML文件时得到此异常。 p>

我不太了解gwt的底层工作,也许有人可以帮我解决问题。

来自url的数据

  public static String readURL(String path)throws IOException {
String data =;

网址=新网址(路径);
URLConnection conn = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));

字符串行; ((line = br.readLine())!= null){
data + = line;

while
}
br.close();

System.out.println(data.length());

返回数据;
}

这就是我得到的错误

  SEVERE:javax.servlet.ServletContext log:分派传入RPC调用时的异常
com.google.gwt.user.server.rpc.UnexpectedException:服务方法'public abstract void com.cpsc310.sc2.client.RouteService.storeParsedData()'引发了一个意外的异常:java.lang.NoClassDefFoundError:com / google / gwt / core / client / GWTBridge
at com.google.gwt .user.server.rpc.RPC.encodeResponseForFailure(RPC.java:389)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:579)
at com .google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
,位于com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.s服务(HttpServlet.java:637)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
在org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 511)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1166)
at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter。
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter。 java:123)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter。 java:34)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter( ServeB lobFilter.java:61)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter( TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.BackendServersFilter.doFilter( BackendServersFilter.java:97)
at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler。 java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.ja va:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:94)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService $ ApiProxyHandler.handle(JettyContainerService.java:409)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty .HttpConnection $ RequestHandler.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser .java:218)
在org.mortb ay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:582)
由java.lang.NoClassDefFoundError引发:com / google / gwt / core / client / GWTBridge $ b $ java.util.Class.forName0(Native Method) $ java.util.Class.forName(Class.java:169)
$ $ b在com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
在com.google.gwt.xml.client.impl.XMLParserImpl。< clinit> (XMLParserImpl.java:29)
at com.google.gwt.xml.client.XMLParser。< clinit>(XMLParser.java:28)
at java.lang.Class.forName0(Native Method )在java.lang.Class.forName(Class.java:169)处为
;在com.google.appengine.tools.development.agent.runtime.Runtim处为
eHelper.checkRestricted(RuntimeHelper.java:70)
at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
at com.cpsc310.sc2。 server.parser.BikeRouteParser.parseRoutesbyDOM(BikeRouteParser.java:39)
at com.cpsc310.sc2.server.RouteServiceImpl.storeParsedData(RouteServiceImpl.java:93)
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。通过com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
反映.Method.invoke(Method.java:597)
。 gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)
... 38 more
导致:java.lang.ClassNotFoundException:com.google.gwt.core.client。 GWTBridge
在java.net.URLClassLoader $ 1.run (URLClassLoader.java:202)$ java.util.AccessController.doPrivileged中的
(本地方法)$ java.net.URLClassLoader.findClass中的
(URLClassLoader.java:190)$ b $ at java.lang .ClassLoader.loadClass(ClassLoader.java:306)com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass上的
(IsolatedAppClassLoader.java:213)$ java.util.ClassLoader.loadClass上的
(ClassLoader .java:247)


解决方案

不能使用GWT客户端上下文之外的客户端包中的类(即服务器端)

(这是我们试图在 gwt-user.jar 中全局应用的规则,但有一些例外,但它们主要是实现细节)



如果你想在你的服务器上解析XML,使用 javax.xml ,而不是 com.google.gwt.xml.client


im working on a gwt webapp

and while working on it im getting this exception while trying to get a XML file from a URL in a remove servlete.

i dont know much about the underworkings of gwt, maybe someone can help me out

this is the code to get the data from the url

public static String readURL(String path) throws IOException{
    String data = "";

    URL url = new URL(path);
    URLConnection conn = url.openConnection();
    BufferedReader br = new BufferedReader(new InputStreamReader(
            conn.getInputStream()));

    String line;

    while ((line = br.readLine()) != null) {
        data += line;
    }
    br.close();

    System.out.println(data.length());

    return data;
}

and this is the error im getting

        SEVERE: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
    com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void com.cpsc310.sc2.client.RouteService.storeParsedData()' threw an unexpected exception: java.lang.NoClassDefFoundError: com/google/gwt/core/client/GWTBridge
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:389)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:579)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:61)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:94)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:409)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.lang.NoClassDefFoundError: com/google/gwt/core/client/GWTBridge
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
    at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
    at com.google.gwt.xml.client.impl.XMLParserImpl.<clinit>(XMLParserImpl.java:29)
    at com.google.gwt.xml.client.XMLParser.<clinit>(XMLParser.java:28)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
    at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
    at com.cpsc310.sc2.server.parser.BikeRouteParser.parseRoutesbyDOM(BikeRouteParser.java:39)
    at com.cpsc310.sc2.server.RouteServiceImpl.storeParsedData(RouteServiceImpl.java:93)
    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:597)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)
    ... 38 more
Caused by: java.lang.ClassNotFoundException: com.google.gwt.core.client.GWTBridge
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:213)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

解决方案

As a general rule, you cannot use a class that's in a client package outside of a GWT client context (i.e. server-side)
(this is a rule we're trying to apply globally across gwt-user.jar, there are a few exceptions but they're mostly implementation details)

If you want to parse XML on your server, use javax.xml, not com.google.gwt.xml.client.

这篇关于classNotFoundException GWTBridge的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆