почему ссылка на службу jax-ws Spring имеет префикс #, как в ws: service bean = "# myService" - PullRequest
2 голосов
/ 12 января 2010

Я разработал веб-сервис с jax-ws и Spring, используя руководства на веб-сайте jax-ws commons. Он показывает вам, как определить и ссылаться на ваш сервис из вашего весеннего файла applicationContext (https://jax -ws-commons.dev.java.net / spring / ).

В чем причина "#" при обращении к веб-сервису? Я ожидаю увидеть что-то более похожее на

<ws:service name="myEventWS" ref="eventWebService"/> 

но, следуя примеру по вышеуказанной ссылке, я создал следующий, который работает.

<bean id="eventWebService" class="com.myws.EventWS">
    <property name="model" ref="EventModel"/>
</bean>

<wss:binding url="/EventWS">
    <wss:service>
        <ws:service bean="#eventWebService"/>
    </wss:service>
</wss:binding>

Ответы [ 3 ]

2 голосов
/ 12 января 2010

<ws:service> использует пространство имен пользовательской конфигурации , что является функцией Spring, которая позволяет вам выражать сложные графы бинов, используя более простое пространство имен. Значение и интерпретация этих пользовательских пространств имен зависят от рассматриваемой реализации, в данном случае от проекта JAX-WS-Commons. Кажется, авторы решили, что bean=#eventWebService означает то, что вы называете ref="eventWebService".

Я не знаю, почему они сделали это таким образом, возможно, они подумали, что это более читабельно ... возможно, они подумали, что bean=eventWebService (без хэша) означает имя, а не ссылку ... не знаю Документация тоже не очень понятна.

В любом случае, я уверен, что это не основной синтаксис Spring и не соглашение, которое я видел раньше.

0 голосов
/ 01 февраля 2010

#eventWebService относится к компоненту типа EventWebService (согласно стандартному соглашению об именах Spring, когда компонент не указан).

0 голосов
/ 01 февраля 2010

"#" говорит бину, что это не класс, а ссылка.

НТН

...