Google AppEngine java.net.Socket是受限错误
我在AppEngine上使用Quercus/PHP。当我运行带有Google AppEngine java.net.Socket是受限错误,java,php,google-app-engine,quercus,Java,Php,Google App Engine,Quercus,我在AppEngine上使用Quercus/PHP。当我运行带有file\u get\u内容($url)的简单脚本时我得到一个错误: java.lang.NoClassDefFoundError:java.net.Socket是一个受限类。 有关更多详细信息,请参阅谷歌应用程序引擎开发者指南 我在谷歌上搜索过,虽然我发现其他人也遇到了同样的错误,但原因似乎各不相同。你认为是什么让我犯了这个错误 我正在使用最新的AppEngine Java SDK和最新的Quercus。根据您的api()主页,它
file\u get\u内容($url)的简单脚本时代码>我得到一个错误:
java.lang.NoClassDefFoundError:java.net.Socket是一个受限类。
有关更多详细信息,请参阅谷歌应用程序引擎开发者指南
我在谷歌上搜索过,虽然我发现其他人也遇到了同样的错误,但原因似乎各不相同。你认为是什么让我犯了这个错误
我正在使用最新的AppEngine Java SDK和最新的Quercus。根据您的api()主页,它可以使用hibernate。快速谷歌搜索为我提供了以下信息:
它说hibernate不能与google应用程序引擎一起工作。也许这就是答案。当使用Google AppEngine/Java时,您实际上无法访问完整的JVM:您的应用程序在受限的沙箱中运行。请参阅此处的文档:
根据本文档,您无法在此沙盒中打开套接字。这就是为什么写“java.net.Socket是一个受限类”的原因。olivierlemasle是正确的,但下面是我在进一步搜索后找到的解决方案;在评论部分:
经过测试,它成功了 应用程序引擎对java.net.Socket的支持已开始在1.7.2上推出,trusted tester已提交
会有一些限制,但它应该支持大多数用途
注册信息如下:
它很流行,所以只启用了一小部分。据我所知,我没有使用hibernate,但我想我应该稍后用stacktrace重新发布这个问题。我现在不在家里的电脑上,所以现在无法发布。如果你在网上发现了,请留下一个指向源的链接。
import java.net.URL;
define('URLFetchServiceFactory', new Java('com.google.appengine.api.urlfetch.URLFetchServiceFactory'));
$data = URLFetchServiceFactory->getURLFetchService()->fetch(new URL($url))->getContent();