我创建了一个简单的appengine项目,用于访问http://commerce.qa.mycomp.com中托管的restful webservice(mycomp应该替换为我的实际公司名称) .

我正在使用Jersey客户端来发出客户请求 . 我对上面的网址发出POST请求 . 当我在本地运行应用程序时,它总是返回404 Not Found响应 . 为了进行实验,我对http://www.bbc.co.uk/news/发出了一个POST请求,这个工作正常,并返回200作为状态 .

我只是将我的应用程序与appengine分离并在单独配置的tomcat服务器中运行它,并且它工作正常并返回200状态代码 . 我认为appengine使用Jetty作为服务器 . Jetty是否有任何处理url的错误,例如commerce.qa.mycomp.com . 为什么我要问这是从www.any.com开始的网址似乎工作正常 .

当在本地的appengine中运行时,下面显示的两个代码片段无法正常工作(即使我将其托管到appspot也不会运行) .

Client client = Client.create();
WebResource service = client.resource("http://commerce.qa.mycomp.com/rest");
ClientResponse response = service
    .header("Content-Type", "text/xml; Charset=utf-8")
.header("Authorization", "Basic dwt3hkl553lsfsfssf3")
.post(ClientResponse.class, "does not need to be actual xml");

URL url = new URL("http://commerce.qa.mycomp.com/rest");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "text/xml; Charset=utf-8");
conn.addRequestProperty("Authorization", "Basic dwt3hkl553lsfsfssf3");
OutputStream os = conn.getOutputStream();
os.write("no need to be actual xml".getBytes());
os.flush();
System.out.println("Response Code: " + conn.getResponseCode());

但是当使用tomcat运行时,它才能正常工作 .

我的安装是:谷歌应用引擎Java SDK 1.6.1谷歌插件为Eclipse 3.7 jersey-client-1.12,jersey-core-1.12,jersey-json-1.8

请分享想法 .