【问题标题】:why is jax-ws spring service reference prefixed with #, as in ws:service bean="#myService"为什么jax-ws spring服务引用以#为前缀,如ws:service bean="#myService"
【发布时间】:2010-01-11 21:53:02
【问题描述】:

我使用 jax-ws commons 网站上的教程使用 jax-ws 和 Spring 开发了一个 Web 服务。它向您展示了如何从您的 spring applicationContext 文件 (https://jax-ws-commons.dev.java.net/spring/) 定义和引用您的服务。

引用 Web 服务时出现“#”的原因是什么?我希望看到更像

的东西
<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>

【问题讨论】:

    标签: spring jax-ws spring-ws


    【解决方案1】:

    &lt;ws:service&gt; 使用custom configuration namespace,这是 Spring 的一个特性,它允许您使用更简单的命名空间来表达复杂的 bean 图。这些自定义名称空间的含义和解释取决于所讨论的实现,在本例中是 JAX-WS-Commons 项目。似乎该文章的作者认为bean=#eventWebService 的意思是您所说的ref="eventWebService"

    我不知道他们为什么那样做,也许他们认为它更具可读性......也许他们认为bean=eventWebService(没有哈希)意味着一个名字,而不是一个参考......我不知道不知道。文档也不是很清楚。

    不管怎样,我很确定这不是 Spring 的核心语法,也不是我以前见过的约定。

    【讨论】:

      【解决方案2】:

      “#”告诉 bean 它不是一个类,而是一个 ref。

      HTH

      【讨论】:

        【解决方案3】:

        #eventWebService 指的是EventWebService 类型的bean(未指定bean 时根据默认的Spring 命名约定)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多