我正在使用eclipse插件开发一个app-engine连接的android项目.该应用程序的一个方面是允许用户Alpha将图片发送给用户Bravo.为此,我有以下设置:
用户Alpha发布:
用户Bravo获得:
这个设置需要两(2)分钟,从我的Android应用程序发送图像到我可以在blob疼痛中看到它.不用说这是完全不可接受的.
我的服务器通过以下代码以编程方式处理图像:
public static BlobKey toBlobstore(Blob imageData) throws FileNotFoundException, FinalizationException, LockException, IOException {
if (null == imageData)
return null;
// Get a file service
FileService fileService = FileServiceFactory.getFileService();
// Create a new Blob file with mime-type "image/png"
AppEngineFile file = fileService.createNewBlobFile("image/jpeg");// png
// Open a channel to write to it
boolean lock = true;
FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);
// This time we write to the channel directly
writeChannel.write(ByteBuffer.wrap
(imageData.getBytes()));
// …
Run Code Online (Sandbox Code Playgroud) google-app-engine android blobstore gae-eclipse-plugin google-cloud-endpoints
我在Eclipse中导入了Google App Engine项目.出于某种原因,当我转到Eclipse项目属性时,Google App Engine SDK似乎被保存为jar的位置(appengine-api-1.0-sdk-1.4.0.jar),而不是实际SDK所在的位置.如果我修改项目的设置以使用正确的SDK,则不会保存新设置.因为我无法修改设置,所以无法再从Eclipse内部部署我的应用程序.
java eclipse google-app-engine eclipse-3.6 gae-eclipse-plugin
我正在开发GAE上的应用程序,我在本地测试网站很好,但每次我尝试将它部署到GAE时报告错误:服务器错误
The server encountered an error and could not complete your request.
Please try again in 30 seconds.
Run Code Online (Sandbox Code Playgroud)
我在谷歌搜索了很多,似乎没有答案可以解决我的问题.当我在GAE应用程序中查找日志时,以下是我到目前为止发现的主要问题.最初,我认为这是由JDK8引起的,但是当我设置JDK8时,我甚至无法在本地运行应用程序!
Uncaught exception from servlet
java.lang.UnsupportedClassVersionError: org/apache/jsp/index_jsp : Unsupported major.minor version 52.0
at com.google.appengine.runtime.Request.process-aea5c804a9f29902(Request.java)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:795)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.lang.ClassLoader.loadClass(ClassLoader.java:360)
at org.mortbay.util.Loader.loadClass(Loader.java:91)
at org.mortbay.util.Loader.loadClass(Loader.java:71)
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
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:188)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) …
Run Code Online (Sandbox Code Playgroud) 我按照教程写了这封信; 好吧,它实际上是非常基本的,所以那里真的没什么.但是当我创建项目时,android部分没有编译.Eclipse抱怨无法解析导入.例如,在该com.myapp.deviceinfoendpoint
部分下面有一条读取线
import com.myapp.deviceinfoendpoint.Deviceinfoendpoint;
import com.myapp.deviceinfoendpoint.Deviceinfoendpoint.Builder;
import com.myapp.deviceinfoendpoint.model.DeviceInfo;
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这一问题?也许这是一个构建路径问题,但没有关于如何设置构建路径的说明.
我正在使用mac osx mountain lion和eclipse juno
以下文件夹中还有红色十字:
端点库/ libdeviceinfoendpoint-V1/deviceinfoendpoint/deviceinfoendpoint-V1生成源
/ MyApp的/端点库/ libmessageEndpoint-V1/messageEndpoint/messageendpoint-V1生成源
/ myapp/endpoint-libs(和子文件夹)
和以下文件夹:
GCMIntentService.java
RegisterActivity.java
google-app-engine android gae-eclipse-plugin google-cloud-endpoints
我尝试使用eclipse和Eclipse插件Eclipse构建一个非常简单的GAE应用程序.我从@Entity类生成了一些Endpoint,然后我生成了Cloud Endpoint Client库.
之后我启动了appEngine项目(在eclipse中,在嵌入式jetty服务器上).当我尝试访问/ _ah/api时,我遇到以下问题:
HTTP ERROR 500
Problem accessing /_ah/api/. Reason:
Failed to retrieve API configs with status: 404
Caused by:
java.io.IOException: Failed to retrieve API configs with status: 404
at com.google.api.server.spi.tools.devserver.ApiServlet.getApiConfigSources(ApiServlet.java:102)
at com.google.api.server.spi.tools.devserver.ApiServlet.initConfigsIfNecessary(ApiServlet.java:67)
at com.google.api.server.spi.tools.devserver.RestApiServlet.service(RestApiServlet.java:117)
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:63)
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.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:368)
at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:351)
at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
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 …
Run Code Online (Sandbox Code Playgroud) 我正在使用eclipse插件构建一个连接android项目的app引擎.该项目工作正常,所以我决定是时候创建一个发布APK.使用eclipse,我会完成整个过程.但是当我到达终点时,我得到一个例外:Proguard returned with error code 1
.我在下面包含了整个日志.
我的GEP生成的项目附带了两个与proguard相关的文件:proguard-google-api-client.txt
和proguard-project.txt
.还有一个名为proguard的项目,但它是空的.该project.properties
文件中有两行
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt:proguard-google-api-client.txt
target=android-17
Run Code Online (Sandbox Code Playgroud)
请有人帮忙.除了这些程序错误,我的代码工作正常.我在模拟器和真实设备中进行测试.这从未停止过发展中的问题.此外,我的后端已部署在app引擎上,我可以毫不费力地使用我的dev api.
After some reading, I landed on How can I check/upgrade Proguard version whn using it in Eclipse for Android development?. But after I manually update proguard from 4.7 to 4.9, when I try to export an apk I get the eclipse error that it cannot find the file android-sdk-macosx/tools/proguard/proguard-android.txt
.
EDIT: Based on feedback I receive, I created the following …
使用Google Appengine Eclipse插件生成端点时,我遇到了一种奇怪的行为.我有一个端点类,有超过20个端点方法.当我第一次尝试为android生成端点时,我得到了错误
Generating Cloud Endpoint has encountered errors and is not complete
Run Code Online (Sandbox Code Playgroud)
通过故障排除,我注释掉所有找到罪魁祸首的方法.我发现有点莫名其妙.取消注释第16个方法后,我再次收到错误.有两种方法相互干扰!如果我注释掉一个或另一个端点生成正常.但如果我同时取消注释,我会得到上面的错误.
有谁知道可能导致这种干扰的原因是什么?
@ApiMethod(name = "getOrangers", httpMethod = HttpMethod.POST)
public FaceList getOrangers(UserRequest request) throws NotFoundException {
FaceList list = new FaceList();
return list;
}
@ApiMethod(name = "getMangoers", httpMethod = HttpMethod.POST)
public FaceList getMangoers(UserRequest request) throws NotFoundException {
FaceList list = new FaceList();
return list;
}
Run Code Online (Sandbox Code Playgroud)
我已经将方法编辑到它们的存根,如上所示,仍然会遇到相同的干扰问题.
java google-app-engine gae-eclipse-plugin google-cloud-endpoints
这是我的 web.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>Upload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Upload</servlet-name>
<url-pattern>/upload</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>SystemServiceServlet</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value>com.company.game.GameApi</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SystemServiceServlet</servlet-name>
<url-pattern>/_ah/spi/*</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)
我有一个Google Cloud Endpoint api,GameApi,除了加载花费太长时间的blob之外,它一直运行良好.所以我决定使用Upload
谷歌网站上的servlet从用户上传我的blob.我基本上将blob文件的xml代码添加到端点api的现有xml代码中,从而生成上面显示的xml.但是从不调用Upload servlet.我在localhost上测试,我可以在_BlobUploadSession_
表中看到前端(即android应用程序)已成功将图像发送到具有正确回调URL的blobstore.我知道servlet没有被调用,因为我在入口处有一个println语句.
我需要改变web.xml
吗?我是否允许将端点与servlet结合使用web.xml
?
google-app-engine servlets blobstore gae-eclipse-plugin google-cloud-endpoints
有没有人知道为什么Google Cloud Endpoint unexpected end of stream
甚至在我的app引擎实例实际到达之前就一直在抛出异常?当我调用我的端点时,我一直收到以下错误.在大多数地方,错误显示在每次其他呼叫之后; 在其他罕见的情况下,它是一致的.
05-06 18:32:28.335: W/System.err(11783): java.io.IOException: unexpected end of stream
05-06 18:32:28.343: W/System.err(11783): at libcore.net.http.FixedLengthOutputStream.close(FixedLengthOutputStream.java:58)
05-06 18:32:28.343: W/System.err(11783): at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:82)
05-06 18:32:28.343: W/System.err(11783): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:980)
05-06 18:32:28.343: W/System.err(11783): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:412)
05-06 18:32:28.343: W/System.err(11783): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:345)
05-06 18:32:28.343: W/System.err(11783): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:463)
…
05-06 18:32:28.343: W/System.err(11783): at android.os.AsyncTask.finish(AsyncTask.java:631)
05-06 18:32:28.343: W/System.err(11783): at android.os.AsyncTask.access$600(AsyncTask.java:177)
05-06 18:32:28.343: W/System.err(11783): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
05-06 18:32:28.343: W/System.err(11783): at android.os.Handler.dispatchMessage(Handler.java:99)
05-06 18:32:28.343: W/System.err(11783): at android.os.Looper.loop(Looper.java:137)
05-06 18:32:28.343: W/System.err(11783): at android.app.ActivityThread.main(ActivityThread.java:4849)
05-06 18:32:28.343: …
Run Code Online (Sandbox Code Playgroud) google-app-engine android gae-eclipse-plugin google-cloud-endpoints
如何使用Java中的google eclipse插件创建一个包含模块的新GWT和GAE项目?我尝试使用eclipse创建一个新的Web应用程序,但它只是创建了一个没有模块的GWT和GAE项目.
谢谢.
java gwt google-app-engine maven-gae-plugin gae-eclipse-plugin