I am trying to use the blobstore API, but I have this error:
com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred while calling backed method com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'file' or call 'Create()' was not found. at java.lang.Thread.getStackTrace(Thread.java:1589) at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:116) at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:65) at com.google.appengine.api.files.FileServiceImpl.makeSyncCall(FileServiceImpl.java:590) at com.google.appengine.api.files.FileServiceImpl.create(FileServiceImpl.java:512) at com.google.appengine.api.files.FileServiceImpl.createNewBlobFile(FileServiceImpl.java:111) at com.listecourses.model.ListeModelEndpoint.insertListeModel(ListeModelEndpoint.java:182) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:45) at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:359) at com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:113) at com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:71) 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 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 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 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.headerComplete(HttpConnection.java:923) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444) at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:230) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441) at java.lang.Thread.run(Thread.java:745)
I using this code:
@ApiMethod(name = "insertListeModel", httpMethod = "POST") public ListeModel insertListeModel(ListeModel listemodel) { EntityManager mgr = getEntityManager(); try { if (containsListeModel(listemodel)) { throw new EntityExistsException("Object already exists"); } FileService fileService = FileServiceFactory.getFileService(); if(listemodel.getImage()!=null && !listemodel.getImage().equals("")) { byte[] data = listemodel.getImage(); String mimeType = "image/png"; // save data to Google App Engine Blobstore listemodel.setImage(null); mgr.persist(listemodel); AppEngineFile file; file = fileService.createNewBlobFile(mimeType,"LM_"+listemodel.getId()); FileWriteChannel writeChannel = fileService.openWriteChannel(file, true); writeChannel.write(java.nio.ByteBuffer.wrap(data)); writeChannel.closeFinally(); // your blobKey to your data in Google App Engine BlobStore BlobKey blobKey = fileService.getBlobKey(file); // THANKS TO BLOBKEY YOU CAN GET FOR EXAMPLE SERVING URL FOR IMAGES // UploadOptions uploadOptions = UploadOptions.Builder // .withGoogleStorageBucketName("photobucket11"); // Get the image serving URL (in https:// format) String imageUrl = ImagesServiceFactory.getImagesService().getServingUrl(ServingUrlOptions.Builder.withBlobKey(blobKey).secureUrl(true)); // ImagesService imagesService = ImagesServiceFactory // .getImagesService(); // ServingUrlOptions servingOptions = ServingUrlOptions.Builder // .withBlobKey(blobKey); // String imageUrl = imagesService.getServingUrl(servingOptions); if(listemodel.getIdBlobkey()!=null) { BlobKey blobKeytmp= new BlobKey(listemodel.getIdBlobkey()); final AppEngineFile f = fileService.getBlobFile(blobKeytmp); if(f.isReadable()) { if(f.hasFinalizedName()) { fileService.delete(f); // Problematic line } } } listemodel.setAvatar(imageUrl); listemodel.setIdBlobkey(blobKey.getKeyString()); } mgr.persist(listemodel); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { mgr.close(); } return listemodel; }
Can you help me?
thanks
I am trying to use the blobstore API, but I have this error:
com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred while calling backed method com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'file' or call 'Create()' was not found. at java.lang.Thread.getStackTrace
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/7b87b420-3259-4551-81e2-dd69e308af7c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred while calling backed method java.lang.NoClassDefFoundError: com/google/api/client/http/HttpRequestInitializer at com.google.appengine.tools.cloudstorage.oauth.OauthRawGcsServiceFactory.<clinit>(OauthRawGcsServiceFactory.java:31) at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createRawGcsService(GcsServiceFactory.java:59) at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:44) at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:40) at com.google.appengine.tools.cloudstorage.GcsServiceFactory.createGcsService(GcsServiceFactory.java:75) at com.listecourses.model.ListeModelEndpoint.insertListeModel(ListeModelEndpoint.java:204) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:45) at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:359) at com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:113) at com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:71) 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 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 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 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.headerComplete(HttpConnection.java:923) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444) at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:230) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441) at java.lang.Thread.run(Thread.java:745)
my code is:
GcsFilename fileName = new GcsFilename("my-bucket-name", "someFileName.jpg");
GcsOutputChannel outputChannel = GcsServiceFactory.createGcsService().createOrReplace(fileName, GcsFileOptions.getDefaultInstance());
outputChannel.write(ByteBuffer.wrap(listemodel.getImage()));
outputChannel.close();
I think, I am missing the file API library whitin my project. I join the image of my project's libraries.
appengine-gcs-client.jar guava-15.0.jarjoda-time-2.3.jarappengine-testing.jarappengine-api.jar appengine-api-stubs.jar--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/ea2891b6-076c-4097-8972-5be0ade3d662%40googlegroups.com.
Error Code: 400 Reason: badRequest Message: java.lang.IllegalArgumentException: OBJECT_NOT_FOUND: