我有一个关于部署Web服务的简单问题。目前我有两个endPoints,见下文:
Endpoint.publish("http://localhost:8000/eCalcWS/eCalc", new eCalc());
Endpoint.publish("http://localhost:8001/eCalcWS/eCalc_service", new eCalc_service());
是否可以在同一地址上拥有两个Web服务?我该怎么做?
答案 0 :(得分:2)
不幸的是,你不能以你想要的方式 设计是每个端点都与Web服务实现者相关联 来自spec:
Endpoint类可用于创建和发布Web服务 端点。端点由充当Web的对象组成 服务实现(这里称为实现者)加上一些 配置信息,例如一个绑定
和发表(我的重点):
publish(String address,Object implementor)
创建并发布给定实现者的端点 。选择绑定 默认基于提供的地址的URL方案(必须是 一个URL)。如果找到合适的绑定,则创建端点 发布好像Endpoint.publish(字符串地址)方法一样 调用。然后返回创建的端点作为的值 方法
我记得我在很长一段时间内也遇到过这个问题非常糟糕,因为我需要将2-3个不同的实现与不同的URL相关联,这是不可能的(得到地址已经绑定错误)。
如果我记得,我解决这个问题的方法就是创建自己的调度员
我发布了一个端点,该端点接受多个端点的Web服务请求,并将请求分派给相应的实现。我直接在SOAP消息上工作
但是对我来说这是可能的,因为xml消息非常简单而且很少
对于您,我建议在不同的端点发布,如果您的Web服务实现非常重要并且具有复杂的消息并期望很多客户端,因为端点实际上只是部署了简单 http服务器。