Развертывание веб-службы CXF в Spring Framework - PullRequest
0 голосов
/ 14 сентября 2009

После работы с образцами CXF у меня был простой веб-сервис, и он работал нормально. Однако я хотел бы интегрировать его с веб-приложением Spring внутри контейнера сервлета. После обновления файла конфигурации servlet.xml:

<jaxws:endpoint id="HelloWorldService"
implementor="path.to.webservice.HelloWorldImpl"
endpointName="e:HelloEndpoint"
serviceName="s:HelloService"
address="/HelloService"
xmlns:e="http://service.jaxws.cxf.apache.org/endpoint"
xmlns:s="http://service.jaxws.cxf.apache.org/service"/>

и web.xml:

<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>
        org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

Мне удалось развернуть его в сервлете, но WSDL службы Spring ужасно неверен, хотя интерфейс Java и файлы реализации идентичны. См. Схемы Eclipse WSDL ниже:

альтернативный текст http://img171.imageshack.us/i/correcty.jpg/ альтернативный текст http://img190.imageshack.us/i/wrongia.jpg/

Почему такие разные WSDL генерируются из одинаковых файлов .java и как я могу заставить их работать в сервлете? Заранее спасибо.

1 Ответ

0 голосов
/ 14 ноября 2009

WSDL и схема зависят от выбора внешнего интерфейса и привязки данных в CXF. Если ваша другая среда не JAX-WS + JAXB, той же версии, вы получите совсем другие результаты. Даже если это просто не-CXF-версия, вы можете ожидать косметически разных результатов.

...