Вопрос

Я следовал инструкциям по настройке 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().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top