Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在数据存储中存储数据时出现问题_Java_Google App Engine_Gwt_Google Cloud Datastore - Fatal编程技术网

Java 在数据存储中存储数据时出现问题

Java 在数据存储中存储数据时出现问题,java,google-app-engine,gwt,google-cloud-datastore,Java,Google App Engine,Gwt,Google Cloud Datastore,我面临文件上传问题。我使用了Apache Commons 用于上载文件的servlet文件上载。尽管文件越来越多 上传并将数据存储在本地服务器上(http:// 127.0.0.1:8888/_ah/admin/datastore),但它不会进入谷歌 应用程序引擎数据存储。 我正在做的是加载 将文件作为流,并立即解析流并创建 包含数据的数据存储实体。我并不是真的想拯救世界 文件在本地服务器中,它可以工作。甚至当我尝试访问 另一台计算机上的本地服务器。但是,当我 使用GooglePlugginfo

我面临文件上传问题。我使用了Apache Commons 用于上载文件的servlet文件上载。尽管文件越来越多 上传并将数据存储在本地服务器上(http:// 127.0.0.1:8888/_ah/admin/datastore),但它不会进入谷歌 应用程序引擎数据存储。 我正在做的是加载 将文件作为流,并立即解析流并创建 包含数据的数据存储实体。我并不是真的想拯救世界 文件在本地服务器中,它可以工作。甚至当我尝试访问 另一台计算机上的本地服务器。但是,当我 使用GooglePlugginforEclipse将其部署到Appengine。我的语法分析 代码依赖于web inf目录下的资源文件。 是否有可能这些资源文件未被上载且已被删除
有没有办法检查Appengine上上载了哪些文件

你的
.war
中的任何东西都将进入AppEngine。我看不出它的某些部分会被选择性地排除在外。更有可能的是,你的应用程序依赖于你的电脑上某个地方隐藏的东西,但不包括在.war文件中

然而,您的应用程序不应该检查这些资源并在未找到时抛出异常吗?如果它悄然失败,我会认为这是一个设计缺陷。

记录大量日志可能会帮助您调试问题。您可以通过AppEngine控制台查看程序日志。我建议进行更多的错误检查和日志记录


另外需要检查的是,不要运行您认为您是的软件版本。有一种版本控制机制,允许您部署不同的并发版本,并且只有一个版本可以实际访问。您应该记录和/或以其他方式访问的内容之一是应用程序生成的一些版本信息(甚至可能包括生成时间戳)。

在应用程序引擎中执行.war文件夹中的文件,并上载其他文件。您需要验证的是已设置的路径、源java文件的路径以及正在读取的文件。您不能在app engine中使用本地文件系统路径。您需要将该文件包括在项目中

谢谢您的回复。我确实尝试用以下内容记录我的应用程序:if(item.isFormField()){log.warning(“获取表单字段:+item.getFieldName());}else{log.warning(“获取上传文件:+item.getFieldName()+”,name=“+item.getName());int len;byte[]buffer=新字节[8192];while((len=stream.read(buffer,0,buffer.length))!=-1{log.info(buffer.toString());}虽然它为第一个log语句提供了正确的值,但它为第二个log语句提供了垃圾值,而与我的文件类型无关。您能解释一下吗?如果“第二个”是指日志
buffer.toString())
,这是可以理解的。数组的字符串表示形式是“L”和某个地址。您可能需要尝试使用数组。toString(缓冲区)相反。谢谢。现在它显示了文件中数据的一些ASCII值。这是否意味着至少我的文件被上传了?如果是,那么为什么数据没有到达google数据存储?如果你没有检查len,那么你甚至不能确定。但是可能是的。你为什么不尝试访问你卡在存储中的值我不想进入文件。我只想上传一个kml文件,并使用kml的java api对其进行解组,然后直接使用kml.unmarshall(InputStream)将内容存储到datastore.M中。