мыльная библиотека с mod_wsgi/cherrypy
Вопрос
Я следовал инструкциям по настройке Apache с mod_wsgi для взаимодействия с CherryPy и создания на его основе сайта.Это мой «myapp.wsgi» и открытие http://локальный хост/ прекрасно работает.Открытие http://localhost/ape/ фактически возвращает текст вместо мыльного ответа, и http://localhost/ape/service.wsdl возвращает код ошибки HTTP 500.Что я делаю не так, запуская такую простую службу SOAP?Как я могу заставить его возвращать действительный WSDL?Мой код приведен ниже
Ваше здоровье
Ник
import atexit, threading, cherrypy,sys
from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib.service import soapmethod
from soaplib.serializers.primitive import String, Integer, Array
sys.stdout = sys.stderr
cherrypy.config.update({'environment': 'embedded'})
class Root(object):
def index(self):
return 'Hello World!'
index.exposed = True
@soapmethod(_returns=String)
def ape(self):
return 'Ape!!'
ape.exposed = True
application = cherrypy.Application(Root(), None)
Решение
Я только что проверил это сам, заменив последнюю строку вашего файла на
cherrypy.quickstart(Root(), "/")
и у меня это сработало отлично.Я предлагаю попробовать это и посмотреть, сработает ли это у вас;если это так, то вы будете знать, что это проблема, связанная с запуском его под Apache/mod_wsgi, а не внутренняя проблема вашего кода.
Другие советы
Эли прав;недостаточно просто создать экземпляр приложения.Вам необходимо смонтировать его на Cherrypy.tree, что за вас сделает Quickstart().