【发布时间】:2009-11-24 20:31:17
【问题描述】:
好的,我正在开发一个程序,它将部署到许多机器(Windows、Linux、AIX、z/Linux、openVMS 等)。我希望该应用程序包含一个 SOAP Web 服务,但我不想捆绑 tomcat 或为这些服务运行单独的服务(我希望它们与应用程序的其余部分在同一进程中)。
基本上我正在寻找的是我可以定义一个类的东西(比如WebServices)。我也可以编写 WSDL 或任何其他类型的服务描述。我想要这样的东西:
SOAPServer server = makeMeASoapServer();
//do config on the server
server.add(new WebService(...));
server.listen(port);
显然名称和参数会有所不同。
我一直在研究 Axis,它似乎提供了这个,但我不知道我需要使用哪些类。我想要这种行为是不是很疯狂?我不敢相信越来越多的人没有在寻找这个,我一直在使用 .NET 客户端中的嵌入式 Web 服务来做这件事。
【问题讨论】:
-
您为什么要这样做? 唯一使用 SOAP 的好理由是应用程序之间的通信 - 为什么您希望您的应用程序通过 SOAP 与自己通信?
-
我将其解读为以编程方式在服务器上加载不同的服务以供外部客户端调用。不过,我仍然会在配置文件中这样做,而不是那样。
-
它显然不是在自言自语。监听命令应该让它监听一个端口,服务器将接受 HTTP,解析出 XML 并将调用转发到带有参数和诸如此类的正确方法。我想要这个的原因是因为 Web 服务是应用程序的一小部分,但它需要与应用程序的其余部分进行交互。此外,当我可以添加 1 个时(尤其是当它们需要相互通信时),我不想添加 2 个正在运行的程序。
-
@Dean,是的,这就是我想要的。重要的部分是服务与程序正在执行的其他操作进行交互,因此我希望它共享一个地址空间。
标签: java web-services soap axis