Вызов метода soaplib, работающего на python в Java

У меня следующая ситуация, я должен использовать веб-сервис, написанный на python с использованием soaplib в Java. Я могу нормально импортировать веб-сервис в Eclipse, но когда я пытаюсь вызвать метод веб-сервиса, я получаю следующее сообщение об ошибке...

    AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/опроект Server.userException
     faultSubcode: 
     faultString: org.xml.sax.SAXParseException: содержимое не разрешено в прологе.
     faultActor: 
     faultNode: 
     faultDetail:

Поэтому я попытался создать свой собственный маленький веб-сервис, используя soaplib, чтобы попробовать это. Вот сервер веб-службы, работающий с soaplib и внутренним http-сервером. Простой метод

    import soaplib из soaplib.core.service import rpc, DefinitionBase из soaplib.core.model.primitive import String, Целое число из soaplib.core.server импорт wsgi из soaplib.core.model.clazz import Массив из soaplib.core.service импорт мыла Класс HelloWorldService(DefinitionBase):
        @soap(String,_returns=String)
        def say_hello(self,name):
            results = 'Hello, %s'%name
            print('Hello, %s' % name) возвращает результаты, если __name__=='__main__':
        try:
            from wsgiref.simple_server import make_server
            soap_application = soaplib.core.Application([HelloWorldService], 'tns')
            wsgi_application = wsgi.Application(soap_application) сервер = make_server('pc-frank', 7789, ws)
            server.serve_forever() кроме ImportError:
            print "Ошибка: пример кода сервера требует Python >= 2.5"

и это класс Java, который я пытаюсь использовать

    import java.rmi.RemoteException;
    импортировать статический java.lang.System.out;
    импортные тн.*;

    публичный класс testws {
        public static void main(String[] args){
            ApplicationProxy ws = new ApplicationProxy();
            пытаться {
                String test   = ws.say_hello("world");
                out.println(тест);
            } catch (RemoteException e) {
                // TODO автоматически сгенерированный блок catch
                e.printStackTrace();
            }
        }   
    }

Любая помощь очень ценится!

1 ответ

Похоже, либо запрос, либо ответ не разбирается. Я бы запечатлел их обоих и проверил через инструмент проверки. В Интернете есть много таких, которые позволяют вставить XML-код и понять, почему он не проверяется.

Другие вопросы по тегам