As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。




7年前关闭。




我有一个现有的数据库(在我的情况下为PostgreSQL),并且想通过SOAP Web服务访问其数据(创建,读取,更新,删除,查询)。
我们现在正在做的是,具有每个实体的JPA实现,并具有通用CRUD接口的实现。然后,将这些bean公开为JaxWS Web服务。
这种设置的问题在于JaxWS在通用接口上的行为异常。

由于这是一个常见问题,因此通过WS访问数据库,我想知道是否存在一个开放源代码解决方案,该解决方案会将所有实体表公开为Web服务。
这种工具需要输入一组JPA类(或一些其他数据描述),甚至需要一个JDBC连接(以拉出SQL模式),并产生一组CRUD Web服务。

理想情况下,此类工具主要由Servlet组成,该Servlet可以嵌入任何Web应用程序中。

请告诉我您对这种工具的建议,如果您有使用它的经验,请分享。

谢谢你的建议

最佳答案

很抱歉没有回答问题,而是说“您不想这样做”,但是...

首先,您可能不需要这样做。您的数据库是否已经直接公开了Web服务?例如,DB2 UDB and its tooling为您完成工作。完全不需要编写Java。

第二,也许您不应该这样做?它几乎是一种体系结构上的反模式,可以将实体层直接公开为Web服务。粒度趋向于使服务效率低下并且难以长期维护。总体而言,Web服务往往比粗粒度的具有业务意义的服务更好。例如,创建保险单可能需要多次更新并将其插入到几个不同的表中。将原始表访问功能公开为Web服务意味着evey客户端需要确切地知道该怎么做。相反,公开Web服务CreatePolicy()并让实现拥有这些粗糙的东西。

10-07 20:01
查看更多