0

我需要编写一个带有嵌入式 Jetty 或 Tomcat 的服务器,它能够以编程方式使用 apache CXF 将 POJO 公开为 Web 服务,即无需将其部署为 .war 文件。CXF可以做到这一点吗?

谢谢。

4

1 回答 1

2

Java 带有一个您可以使用的嵌入式服务器。用注释你的 POJO 就足够了@WebService,你不需要额外的包装。只需创建一个 Web 服务实例并使用以下命令进行部署Endpoint.publish()

YourPojo service = new YourPojo(); // the class annotated with @WebService
Endpoint.publish("http://localhost:2000/serviceAddress", service);

嵌入式服务器适用于简单的场景,只需注意它会在任意负载下扩展。

现在,如果您想将此服务与 CXF 一起使用,您只需将 CXF 库放入其构建路径中。部署机制,Endpoint类,保持完全相同。这是一个来自 CXF 的教程,它解释了这个例子。CXF 似乎自动将默认服务器替换为 Jetty。至少这是 CXF 在启动时打印到我的控制台的内容:

Jun 24, 2013 1:36:29 PM org.eclipse.jetty.server.Server doStart
INFO: jetty-8.1.7.v20120910
Jun 24, 2013 1:36:29 PM org.eclipse.jetty.server.AbstractConnector doStart
INFO: Started SelectChannelConnector@localhost:2000
于 2013-06-24T11:45:30.863 回答