soaplib avec mod_wsgi / cherrypy
Question
J'ai suivi les tutoriels pour configurer Apache avec mod_wsgi à l'interface cherrypy et faire un fonctionnement du site de celui-ci. Ceci est mon "myapp.wsgi", et l'ouverture http: // localhost fonctionne / grande. Ouverture http: // localhost / singe / retourne effectivement le texte au lieu d'une réponse de savon et http: //localhost/ape/service.wsdl renvoie un code d'erreur HTTP 500. Qu'est-ce que je fais mal à obtenir un tel service simple SOAP à exécuter? Comment puis-je obtenir pour revenir WSDL valide? Mon code suit ci-dessous
Vive
Nik
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)
La solution
Je viens de tester moi-même en remplaçant la dernière ligne de votre fichier avec
cherrypy.quickstart(Root(), "/")
et cela a fonctionné très bien pour moi. Je suggère d'essayer cela et voir si cela fonctionne pour vous; si elle fait alors vous saurez que c'est une question relative à l'exécution sous Apache / mod_wsgi et non un problème inhérent à votre code.
Autres conseils
Eli est juste; il ne suffit pas de simplement faire une instance d'application. Vous devez monter sur cherrypy.tree, qui QuickStart () fait pour vous.