我有一個plone/zope應用程序:在這個應用程序中,我放置了一個Java applet來執行某些數據評估。我需要知道的是,如果我可以讓applet查詢zope數據庫。Java applet post閱讀zope數據庫
作爲一個嘗試,我在ZMI中創建了一個腳本,並通過POST請求在applet中調用該腳本。它在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的數據庫上寫每個屬性...
我讀了一些關於ZEO的內容,但我認爲這個開銷很大,並沒有繼續考慮這個問題。我希望有另一種選擇...關於參數我不知道這是足夠的指令「打印varname」,我認爲變量必須宣佈。只需要一個信息:如果我像管理用戶名和密碼(在POST內部)那樣管理參數,該方法是否可以工作?或者讓我在查詢字符串中公開它們?非常感謝! – Andrea