Java小程序post读取zope数据库

Java小程序post读取zope数据库,java,python,post,applet,zope,Java,Python,Post,Applet,Zope,我有一个plone/zope应用程序:在这个应用程序中,我放置了一个Java小程序来执行某些数据评估。我需要知道的是,我是否可以从zope数据库中获取小程序查询 作为尝试,我在ZMI中创建了一个脚本,并通过POST请求在小程序中调用该脚本。它可以在eclipse框架中工作,但我不知道它是否可以在生产环境中工作(我认为可以,因为它是一个签名的小程序)。 无论如何,POST请求是在以下代码中完成的: String data = URLEncoder.encode("__ac_name", "UTF-

我有一个plone/zope应用程序:在这个应用程序中,我放置了一个Java小程序来执行某些数据评估。我需要知道的是,我是否可以从zope数据库中获取小程序查询

作为尝试,我在ZMI中创建了一个脚本,并通过POST请求在小程序中调用该脚本。它可以在eclipse框架中工作,但我不知道它是否可以在生产环境中工作(我认为可以,因为它是一个签名的小程序)。 无论如何,POST请求是在以下代码中完成的:

String data = URLEncoder.encode("__ac_name", "UTF-8") + "=" + URLEncoder.encode("admin", "UTF-8");
        data += "&" + URLEncoder.encode("__ac_password", "UTF-8") + "=" + URLEncoder.encode("password", "UTF-8");
        data += "&" + URLEncoder.encode("form.submitted", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8");

URL url = new URL("http://xx.xx.xx.xx:8081/myPloneWebsite/testQueryScript");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while((line = rd.readLine()) != null)
{
    System.out.println(line);
}
wr.close();
rd.close();
我还想向该脚本添加一些参数:我知道如何在这个java代码中操作(只需要复制用户名-密码结构),但不知道如何在python中处理这些参数。参数应该是一个ID:从ID=xx的对象获取所有数据。 我创建的脚本如下所示,它在具有给定条件的所有对象上循环:

catalog = context.portal_catalog
brains = catalog(portal_type='Permesso di costruire', review_state='S9')
for b in brains:
   obj = b.getObject()
   print "%s\t%s" % (b.Title, obj.elenco_progettisti())

return printed
如果有一种方法可以使小程序在Zope数据库上读写,而无需打印和格式化每个属性,那就更好了

如果我能得到小程序查询zope数据库

。不容易。也许一点也不。使用Java小程序查询zope数据库的一种理论方法是:

  • 通过向网络公开数据库
  • 从Java小程序连接到ZEO
但这种方法可能不值得付出努力

至于参数,查询字符串参数如何?例如:

如果将参数名称添加到
parameters
字段,则Python脚本可以处理查询字符串参数,例如:

aclark@Alexs-MacBook-Pro:~/ > curl http://localhost:8080/test\?foo=bar
This is the Script (Python) "test" in http://localhost:8080
bar


我读了一些关于ZEO的文章,但我认为开销很大,所以没有继续考虑它。我希望有另一种选择。。。关于参数,我不知道“print varname”指令是否足够,我认为必须声明变量。只是一个信息:如果我像管理用户名和密码一样管理参数,这个方法会起作用吗?或者我必须在查询字符串中公开它们?非常感谢你!