Я получаю сообщение об ошибке "Нет атрибута schemaLocation в импорте" при использовании клиента Python, обращающегося к JIRA через SOAP
Вот пример кода:
#! / usr / bin / env python # Пример клиента Python, обращающегося к JIRA через SOAP. По умолчанию доступ # http://jira.atlassian.com осуществляется с публичной учетной записи. Методы, требующие # большего, чем простой доступ на уровне пользователя, закомментированы. Измените URL-адрес и сведения о проекте / проблеме для локального тестирования. # # Примечание: этот клиент Python работает только с JIRA 3.3.1 и выше (см. # Http://jira.atlassian.com/browse/JRA-7321) # # Обратитесь к SOAP Javadoc для просмотра доступных вызовов: import SOAPpy, getpass, datetime soap = SOAPpy.WSDL.Proxy('http://jira.company.com:8080/rpc/soap/jirasoapservice-v2?wsdl') jirauser='username' passwd='password' # Это печатает доступные методы, но WSDL не включает имена аргументов #, так что это довольно бесполезно. Вместо этого обратитесь к указанному выше URL-адресу JavadoC#print "Доступные методы:", soap.methods.keys() def listSOAPmethods(): для ввода ключа soap.methods.keys(): ключ печати, ":" для параметра в soap.methods[ключ].inparams: напечатать '\t', param.name.ljust(10), param.type для параметра param в soap.methods[ключ].outparams: напечатать '\tOut: ', param.name.ljust(10)), param.type auth = soap.login(jirauser, passwd) issue = soap.getIssue(auth, 'QA-79') print "Полученный выпуск:", выпуск print "Готово!"
Полная ошибка заключается в следующем, чтобы предоставить полный контекст:
ИМПОРТ: http://service.soap.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://jira.mycompany.com:8080/rpc/soap/jirasoapservice-v2 нет атрибута schemaLocation в импорте ИМПОРТ: http://exception.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://schemas.xmlsoap.org/soap/encoding/ нет атрибута schemaLocation в импорте /usr/local/lib/python2.6/dist-packages/wstools-0.3-py2.6.egg/wstools/XMLSchema.py:3107: DeprecationWarning: object.__init__() не принимает параметров кортеж.__init__(self, args) ИМПОРТ: http://service.soap.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://beans.soap.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://jira.mycompany.com:8080/rpc/soap/jirasoapservice-v2 нет атрибута schemaLocation в импорте ИМПОРТ: http://schemas.xmlsoap.org/soap/encoding/ нет атрибута schemaLocation в импорте ИМПОРТ: http://service.soap.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://beans.soap.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://exception.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://schemas.xmlsoap.org/soap/encoding/ нет атрибута schemaLocation в импорте ИМПОРТ: http://beans.soap.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://jira.mycompany.com:8080/rpc/soap/jirasoapservice-v2 нет атрибута schemaLocation в импорте ИМПОРТ: http://exception.rpc.jira.atlassian.com нет атрибута schemaLocation в импорте ИМПОРТ: http://schemas.xmlsoap.org/soap/encoding/ нет атрибута schemaLocation в импорте
1 ответ
Решение
Я изменил код CLI JIRA Python для использования suds вместо SOAPpy некоторое время назад и не оглядывался назад. SOAPpy довольно старый и кажется неподдерживаемым.