문제

나는 mod_wsgi로 Apache를 설정하여 Cherrypy를 인터페이스하고 사이트를 실행하기위한 튜토리얼을 따랐습니다. 이것은 나의 "myapp.wsgi"이며 개방입니다 http : // localhost/ 잘 작동합니다. 열리는 http : // localhost/ape/ 실제로 비누 응답 대신 텍스트를 반환하고 http : //localhost/ape/service.wsdl 500 HTTP 오류 코드를 반환합니다. 그렇게 간단한 비누 서비스를 실행하는 데 무엇이 잘못되고 있습니까? 유효한 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에서 실행하는 것과 관련된 문제이며 코드의 고유 한 문제가 아니라는 것을 알 수 있습니다.

다른 팁

엘리는 옳다. 응용 프로그램 인스턴스를 만드는 것만으로는 충분하지 않습니다. QuickStart ()가 당신을 위해하는 cherrypy.tree에 장착해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top