2013-11-24 53 views
0

我使用prestashop-openerp連接器launchpad siteElemenTree錯誤的Prestashop - OpenERP的連接器模塊

可以安裝everyhting,沒有錯誤,但是當我嘗試connect與我的遠程prestashop網站界面它拋出這個錯誤:

ParseError: mismatched tag: line 13, column 2 

和服務器追蹤:

Server Traceback (most recent call last): 
File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 89, in send 
return openerp.netsvc.dispatch_rpc(service_name, method, args) 
File "/usr/lib/pymodules/python2.7/openerp/netsvc.py", line 292, in dispatch_rpc 
result = ExportService.getService(service_name).dispatch(method, params) 
File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 626, in dispatch 
res = fn(db, uid, *params) 
File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 188, in execute_kw 
return self.execute(db, uid, obj, method, *args, **kw or {}) 
File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 131, in wrapper 
return f(self, dbname, *args, **kwargs) 
File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 197, in execute 
res = self.execute_cr(cr, uid, obj, method, *args, **kw) 
File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py", line 185, in execute_cr 
return getattr(object, method)(cr, uid, *args, **kw) 
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/prestashop_model.py", line 103, in synchronize_metadata 
import_batch(session, model, backend_id) 
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/import_synchronizer.py", line 663, in import_batch 
importer.run(filters=filters, **kwargs) 
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/import_synchronizer.py", line 176, in run 
record_ids = self._run_page(filters) 
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/import_synchronizer.py", line 184, in _run_page 
record_ids = self.backend_adapter.search(filters) 
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/backend_adapter.py", line 126, in search 
return api.search(self._prestashop_model, filters) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 494, in search 
search(resource, options=options) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 348, in search 
return self.get(resource, options=options) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 516, in get 
response = super(PrestaShopWebServiceDict, self).get(resource, resource_id=resource_id, options=options) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 366, in get 
return self.get_with_url(full_url) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 536, in get_with_url 
response = super(PrestaShopWebServiceDict, self).get_with_url(url) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 375, in get_with_url 
r = self._execute(url, 'GET') 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 206, in _execute 
self._check_status_code(r.status_code, r.content) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 144, in _check_status_code 
ps_error_code, ps_error_msg = self._parse_error(content) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 116, in _parse_error 
error_answer = self._parse(xml_content) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 619, in _parse 
parsed_content = super(PrestaShopWebServiceDict, self)._parse(content) 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 227, in _parse 
parsed_content = ElementTree.fromstring(unicode_encode.unicode2encoding(content)) 
File "<string>", line 124, in XML 

我搜索了一些答案,鋸這question here on SO但仍然沒有線索。

IDK如果這實際上是模塊的錯誤,或者prestapyt庫,我真的不知道,或者在我的prestashop安裝中有一些xml錯誤。

有人用過這個模塊,或者對此有任何線索?

在此先感謝!

編輯

這是prestapyt過時的版本,現在我有最後一個,並回溯錯誤更加清晰:

parsed_content = super(PrestaShopWebServiceDict, self)._parse(content) 
    File "/usr/local/lib/python2.7/dist-packages/prestapyt-0.6.0-py2.7.egg/prestapyt/prestapyt.py", line 214, in _parse 
raise PrestaShopWebServiceError('HTTP XML response is not parsable : %s. %s' % (e, content[:512])) 
    PrestaShopWebServiceError: 'HTTP XML response is not parsable : mismatched tag: line 13, column 2. <HTML>\n<HEAD>\n<TITLE>404 Not Found</TITLE>\n</HEAD>\n<BODY>\n<H1>Not Found</H1>\nThe requested document was not found on this server.\n<P>\n<HR>\n<ADDRESS>\nWeb Server at taxco.com.ve\n</ADDRESS>\n</BODY>\n</HTML>\n\n<!--\n - Unfortunately, Microsoft has added a clever new\n - "feature" to Internet Explorer. If the text of\n - an error\'s message is "too small", specifically\n - less than 512 bytes, Internet Explorer returns\n - its own error message. You can turn that off,\n - but it\'s pretty tricky to find switch' 

這是一個404錯誤,但我不知道哪個文件應該添加到那裏,有經驗的人實現這個連接器?

回答

1

您已經有(幾乎)錯誤消息和回溯中的所有線索:prestapit正在獲取某些格式不正確的/損壞的XML。缺少的線索是:哪個url會返回格式錯誤的XML,這是什麼影響了XML的外觀。

如果你看看你的回溯,有一個明顯的地方,你可以在兩個tyhe URL和響應得到:

File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 375, in get_with_url 
r = self._execute(url, 'GET') 
File "/usr/prestaconnect/prestashoperpconnect/src/prestapyt/prestapyt/prestapyt.py", line 206, in _execute 
self._check_status_code(r.status_code, r.content) 

所以從線=〜205的在/ usr/prestaconnect/prestashoperpconnect/src目錄/ prestapyt/prestapyt/prestapyt.py你可以打印或記錄url和響應以進行檢查,或者只是添加一個斷點進入調試器(如果沒有在守護進程模式下運行)。

+0

感謝您的指導方針,我正在用pdb進行調試,但我認爲我必須從作者github下載.py,認爲它是一個過時的版本。我會檢查 – NeoVe

+0

是的,它已經過時了,無論如何它都會給我帶來錯誤,但對於一個說法來說它更加「冗長」。 – NeoVe

+0

編輯我的問題,謝謝。 – NeoVe