Получаете доступ к весеннему бину из веб-сервиса? - PullRequest
1 голос
/ 01 декабря 2009

Я создал cxf webservice в моем файле cxf.xml У меня есть следующий тег. bean id = "videoStatsTable" class = "com.company.auth.dataobjects.VideoStatsTable"

Из того, что я понимаю, Spring должен создать этот объект для меня. Проблема в том, что я не уверен, как получить к нему доступ. Кажется, что мне нужен servletContext, но, поскольку я не в сервлете, я в WS, я не уверен, как это сделать?

W

1 Ответ

2 голосов
/ 01 декабря 2009

Spring имеет упрощенный способ объявления веб-сервисов (cxf).

в вашем applicationContext.xml добавьте xmlns:jaxws="http://cxf.apache.org/jaxws" к корневому тегу (<beans>) и

http://cxf.apache.org/core
        http://cxf.apache.org/schemas/core.xsd
        http://cxf.apache.org/jaxws
        http://cxf.apache.org/schemas/jaxws.xsd

к вашему schemaLocation

Затем добавьте:

<!-- Loading CXF modules -->
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

И, наконец, объявите вашу реализацию WebService:

<jaxws:endpoint id="MyWebService" implementor="#MyWebServiceImpl"
    address="/myWebServiceAddress" />

где #MyWebServiceImpl - идентификатор вашего компонента,Вы можете свободно вставлять любые другие зависимости Spring в этот bean-компонент.

Тогда веб-сервис будет доступен через http://yourhost/cxfuri/myWebServiceAddress (где cxfuri - это отображение вашего CXF-сервлета)

...