В Spring 3.0 вы должны иметь доступ к контексту сервлета через bean-компонент servletContext в контексте веб-приложения:
<property name="locationUri" value="#{servletContext.contextPath}/webServices" />
Если вы используете pre-Spring-EL (до 3.0),вы должны быть в состоянии сделать
<bean name="servletContextBean" class="org.springframework.web.context.support.ServletContextFactoryBean" />
<bean name="contextPath" factory-bean="servletContextBean" factory-method="getContextPath" />
<bean name="locationUri" factory-bean="contextPath" factory-method="concat">
<constructor-arg value="/webServices" />
</bean>
и внутри вашего компонента myWebservices
<property name="locationUri" ref="locationUri" />
РЕДАКТИРОВАТЬ:
Я не думаю, что получить имя сервера и порт изServletContext, так как в зависимости от настройки веб-контейнер может не знать имя хоста (т. Е. HTTP-сервер может находиться перед веб-контейнером, например, tomcat может находиться за веб-сервером Apache или в зависимости от конфигурации Websphere).
Однако следующее может быть частью решения для получения имени хоста.В Spring 3.0 вы можете делать следующее:
<property name="host"
class="java.net.InetAddress"
factory-method="getLocalHost"/>
<property name="locationUri"
value="http://#{host.canonicalHostName}:8080/#{servletContext.contextPath}/webServices" />