2009-03-24 22 views
1

J'ai suivi les tutoriels pour configurer Apache avec mod_wsgi pour interfacer cherrypy et en faire fonctionner un site. C'est mon "myapp.wsgi", et l'ouverture http://localhost/ fonctionne très bien. L'ouverture http://localhost/ape/ renvoie effectivement le texte au lieu d'une réponse de savon, et http://localhost/ape/service.wsdl renvoie un code d'erreur HTTP 500. Que fais-je de mal à faire fonctionner un service SOAP aussi simple? Comment puis-je l'obtenir pour renvoyer un WSDL valide? Mon code suit ci-dessoussoaplib avec mod_wsgi/cherrypy

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) 

Répondre

1

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 ceci et de voir si cela fonctionne pour vous; Si c'est le cas, vous saurez que c'est un problème lié à l'exécution sous Apache/mod_wsgi et pas un problème inhérent à votre code.

+0

Salut Eli, merci beaucoup pour votre temps. Avez-vous pu récupérer /ape/service.wsdl? – niklassaers

1

Eli a raison; il ne suffit pas de créer une instance d'application. Vous devez le monter sur cherrypy.tree, que quickstart() fait pour vous.