Binding 的service name 必须和implementation.java 一致 吗?

17 views
Skip to first unread message

竹十一

unread,
Mar 22, 2010, 4:18:41 AM3/22/10
to Tuscany SCA 中文论坛, enjo...@gmail.com
Hi Raymond,

下面是binding-http-runtime test.composit 里的一段配置,
<component name="HTTPServiceComponent">
<implementation.java
class="org.apache.tuscany.sca.binding.http.TestServiceImpl"/>
<service name="Servlet">
<tuscany:binding.http uri="http://localhost:8085/httpservice"/>
</service>
</component>

<component name="HTTPGetComponent">
<implementation.java
class="org.apache.tuscany.sca.binding.http.TestGetImpl"/>
<service name="TestGetImpl">
<tuscany:binding.http uri="http://localhost:8085/httpget"/>
</service>
</component>
service name="Servlet" 和 implementation.java 不一致,而service
name="TestGetImpl" 则和implementation.java 一致。看起来似乎服务的名字和实现的名字两者没有关系。

但是在我自己实现的Service binding 中,如果servcie name 与implementation.java
(XxxImpl) 的名字不一致,就一直不能正确绑定service。

Raymond 能否给个思路?

诸位兄弟,有什么高见?


谢.......

Kevin Yang

unread,
Mar 22, 2010, 5:26:34 AM3/22/10
to Tuscany SCA 中文论坛
可參考:
http://www.ibm.com/developerworks/cn/webservices/0907_sca_web20/index.html

>> 最后看一下 SCA Component 暴露给 Web 2.0 应用的服务。通过一个外部的 service 定义,该 Component 可以指定>一个在 composite 层暴露的服务。此服务的名称必须与用 @Service 指定的接口名一致,在该服务的定义里也必须指定 interface 和 binding,其中 binding 采用 jsonrpc 方式,便于在 web client 端使用 ajax 调用,注意此处必须加上 tuscany 的名称空间。


>> 此 [服务的名称] 必须与用 [@Service 指定的接口名] 一致 <<

不知在Java Implementation中有無指定 @Service(接口名)? 是否可以寫個接口, 名為Servlet?
TestServiceImpl.class實作這個Servlet接口, 然後在TestServiceImpl.class指定
@Service(Servlet.class)接口即可?
所以如果您沒指定接口, 看起來好像必須以TestServiceImpl Class Name為Service名稱...?

竹十一

unread,
Mar 22, 2010, 11:52:47 AM3/22/10
to Tuscany SCA 中文论坛
顶!就是它,很久不用Tuscany,忘了这个陷阱了。

On Mar 22, 5:26 pm, Kevin Yang <ven...@gmail.com> wrote:
> 可參考:http://www.ibm.com/developerworks/cn/webservices/0907_sca_web20/index...

Reply all
Reply to author
Forward
0 new messages