日期:2014-05-20  浏览次数:20650 次

@WebService?
在提出问题之前,我先说下我对WebService的理解.WebService主要是用在不同平台(OS和编程语言)间功能的调用,现在能想起的一个典型例子就是用Java写的程序B来调用.net所写程序提供的服务B.也就是说在整个应用系统中把B注册到一个类似JNDI的"注册表"中,A这边也要访问的程序要先在那个"注册表"中登记,这样就可以用A来成功调用B了.A与B之间的数据传送是依据相关协议完成的.

WebService的优点就是可以跨平台地进行不同子系统的协作.不过它也有很明显的缺点,就是这样的跨平台调用是很周折的,要涉及到多种相关协议的解析.

有了上面的陈述后,现在说下我的问题.

工作中要对一个已有项目做些改进,那个项目中用到WebService,可除了有跟下面类似的接口外别的没见任何关于WebService的配置:
@WebService
public interface IMenuManager {
@Get
@HttpResource(location="/menus/{appID}")
public List<Menu> getMenuByApp( @WebParam(name = "appID") int appID);

@Get
@HttpResource(location="/menus/{appID}/{endDate}/{isFilterDate}")
  public List<Menu> getMenus( @WebParam(name = "appID") int appID, @WebParam(name = "endDate") Timestamp endDate, @WebParam(name = "isFilterDate") int isFilterDate);

@Post
@HttpResource(location="/menus")
public Result<Menu> updateMenu(@WebParam(name = "menu") Menu menu);

@Delete
@HttpResource(location="/menus/{menuID}")
public Integer deleteMenu(@WebParam(name = "menuID") int menuID);
}

现在我的疑问如下:
 1,由于整个项目都是用Java来完成的,没有用到.net或C++这样的语言,所用服务器也是Tomcat.这种情况下不有必要用WebService吗?Java程序间就可以直接调用的,为什么还要多走WebService这条路呢?
 2,即使有必要用,可项目中除了像上面那样的@WebService标注外,别的地方也没看到其它的配置.这样有可能行吗?

------解决方案--------------------
合适的就是好的! 当你某一天发现,你需要集成许多东西的时候,你就会发现ws的作用。

一个系统内,跑在一个JVM里面当然没必要必须用WS. 不过如果跑在2台机器上的2个应用呢, 比如一个人力资源,一个销售,再加上一个公文呢? 都是独立的系统,都是java作的。
现在要集成,你打算怎么做??