调用createUploadUrl()的GWT Blobstore错误

use*_*808 8 gwt blobstore

我试图使用GWT将Blobstore api用于appengine ...我向你保证!我让它工作了几个月,突然间我开始得到以下错误..从servlet执行以下行.

public class ImageServiceImpl extends RemoteServiceServlet实现ImageService {

    /**
 * 
 */
private static final long serialVersionUID = 1L;

  // init the blog store service
private BlobstoreService blobService = BlobstoreServiceFactory.getBlobstoreService();
    //private static final Logger log = Logger.getLogger(ImageServiceImpl.class);
    public static final String PATH_TO_DEFAULT_IMAGE = "images/no_photo.jpg";
Run Code Online (Sandbox Code Playgroud)

.....//为了简洁而省略}

    @Override
    public String getUpLoadPath() {
        String url = blobService.createUploadUrl("/n5/doimage");
        return url;
    }
Run Code Online (Sandbox Code Playgroud)

}

初始化App Engine服务器2011年9月19日下午7:28:45 com.google.apphosting.utils.jetty.JettyLogger信息信息:通过com.google.apphosting.utils.jetty.JettyLogger登录到JettyLogger(null)2011年9月19日下午7:28:45 com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml INFO:已成功处理C:\ development \n5 \n5\war\WEB-INF/appengine-web.xml 2011年9月19日7:28:下午45点com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml信息:已成功处理C:\ development \n5 \n5\war\WEB-INF/web.xml 2011年9月19日下午3:28:47 com.google. appengine.tools.development.DevAppServerImpl start INFO:服务器运行在http:// localhost:8888 / Sep 19,2011 7:34:59 PM com.google.appengine.tools.development.ApiProxyLocalImpl log SEVERE:javax.servlet .ServletContext log:调度传入RPC调用时发生异常com.google.gwt.user.server.rpc.UnexpectedException:服务方法'public abstract java.lang.String com.six.n5.client.service.ImageService.getUpLoa dPath()'抛出了一个意外的异常:java.lang.VerifyError:class com.google.appengine.api.blobstore.BlobstoreServicePb $ CreateUploadURLRequest覆盖com.google.gwt.user.server.rpc中的最终方法isInitialized.()Z. RPC.encodeResponseForFailure(RPC.java:385)位于com.google.gwt.user.rp.RPC.invokeAndEncodeResponse(RPC.java:588)com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall( RemoteServiceServlet.java:208)com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java: 62)在javax.servlet.http.HttpServlet.service(HttpServlet.java:637)在javax.servlet.http.HttpServlet.service(HttpServlet.java:717)在com.google.inject.servlet.ServletDefinition.doService(ServletDefinition .java:216)位于com.google.inject.servlet.ManagedServletPipeline.service的com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:141)(ManagedServletPipeline.java:93)在com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:63)在com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)在com.google.inject .servlet.GuiceFilter.doFilter(GuiceFilter.java:110)在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter的.java:35)在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter在org.mortbay.jetty.servlet(ServletHandler.java:1157)在com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43). com.google.appengine.tools.developmen上的ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)t.StaticFileFilter.doFilter(StaticFileFilter.java:122)在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter. Java的:97)在org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1157)在org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)在org.mortbay.jetty .security.SecurityHandler.handle(SecurityHandler.java:216)atg.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765 )在org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)在com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)在org.mortbay.jetty.handler. HandlerWrapper.handle(HandlerWrapper.java:152)在com.google.appengine.tools.development.JettyContainerService $ ApiProxyHandler.handle(JettyContaine rService.java:351)org.mortbay.jetty.handle.HandlerWrapper.handle(HandlerWrapper.java:152)org.mortbay.jetty.Server.handle(Server.java:326)atg.mortbay.jetty.HttpConnection .handleRequest(HttpConnection.java:542)在org.mortbay.jetty.HttpConnection $ RequestHandler.content(HttpConnection.java:938)在org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)在org.mortbay. jetty.HttpParser.parseAvailable(HttpParser.java:218)在org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)在org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)在组织.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:582)产生的原因:java.lang.VerifyError的:类com.google.appengine.api.blobstore.BlobstoreServicePb $ CreateUploadURLRequest覆盖最终方法将IsInitialized()z在java的. java的java.security.SecureClassLoader.defineClass(未知来源)java.lang.ClassLoader.defineClass(未知来源)的.lang.ClassLoader.defineClass1(Native Method)java.net.URLClassLoader.access上的.net.URLClassLoader.defineClass(未知来源)java.net.URLClassLoader上的$ 100(未知来源)java.net.URLClassLoader上的$ 1.run(未知来源)$ 1.run(未知来源)at java.security.AccessController.doPrivileged(本机方法),位于java.lang.ClassLoader.findClass(未知来源),位于com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass的java.lang.ClassLoader.loadClass(未知来源) IsolatedAppClassLoader.java:176)位于com.google.appengine.api.blobstore的com.google.appengine.api.blobstore.BlobstoreServiceImpl.createUploadUrl(BlobstoreServiceImpl.java:43)的java.lang.ClassLoader.loadClass(未知来源). BlobstoreServiceImpl.createUploadUrl(BlobstoreServiceImpl.java:34)在com.six.n5.server.ImageServiceImpl.getUpLoadPath(ImageServiceImpl.java:153)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(来自sun.reflect.DelegatingMethodAccessorImpl.invoke的未知来源(未知来源)来自com.google.appe.上的com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)中的java.lang.reflect.Method.invoke(未知来源). server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)... 39更多

use*_*808 12

我发现了自己的错误!因为它突然失败的原因是因为FORM帖子认为它是跨域发布.8888..etc代替:我是通过调用127.0.0.1:8888..etc但是当我时图像RPC被称为建立上传路径,它返回到窗体的setAction了我的机器名kmoore-PC测试网站127.0.0.1:8888 ...因此它返回null因为它认为它是跨域.

要解决此问题,请点击网址栏中的Google框并添加您的计算机名称,然后使用计算机名称而不是127来测试您的应用程序