我正在开发一个包含多个框架(spring,hibernate,spring-security,ZK for GUI)的Web应用程序,并使用Tomcat作为app server。我必须说我对java Web服务技术没有任何经验。事实上,我几乎肯定会在不久的将来为一些外部应用程序公开一些服务,我想知道将要走的路(考虑我正在使用的框架)......
我看到并阅读了关于Axis,Axis2,JAX-WS的各种教程和一些问题(link)...让我感到困惑的一点是我不知道什么是在现有Web应用程序中集成服务的通用实践(如果有)(主要在项目组织方面)。我现在看到,我需要实现的这些服务部分依赖于现有的源代码,所以我不知道是否应该使用完全独立的项目,或者我可以把它放在我现有的web应用程序文件夹中(我尝试使用Axis2,但不知道这是否是一个好习惯)。
感谢。
答案 0 :(得分:2)
我对Spring-WS 2+和手动Castor映射有很好的经验。是简单但强大的组合。
Spring-ws 2:
脚轮:
如果您使用的是某些Java EE 6服务器,请考虑使用JAXB进行手动映射:
答案 1 :(得分:2)
如何组织项目?
总的来说,我同意@ericacm,但有一件事你应该记住......你说你将在不久的将来开发数量的服务。您可能会想要在单独的服务器上托管服务,例如出于性能,可用性或可维护性的原因。这可能会影响您分离项目的决定。此外,分离“强制”松散耦合,但因此引入了跨多个WAR的会话共享等其他挑战。这是一个逐案判决。
如果我遇到你的情况,我首先会问自己这些服务是否在逻辑上属于网络应用程序。
<强>实施强>
当涉及到WS- *实现时,你必须做出两个决定:
答案 2 :(得分:1)
您可以继续将它们放入同一个项目中。每个Web服务都将是一个额外的接口和实现类以及一些配置。
因为你使用Spring CXF是一个很好的选择作为JAX-WS,因为它与Spring很好地集成。请将this page视为首发。
答案 3 :(得分:1)
Spring-WS是简单Web服务的复杂框架。如果您想完全了解Web服务并了解Web服务的细节,请学习Spring-WS。它非常灵活,提供了很多选择。
否则,如果您想要更简单的替代方案,请使用JAX-WS。 Spring支持JAX-WS注释。请参阅第17.5.7节。使用JAX-WS RI的Spring支持导出Web服务。
http://static.springsource.org/spring/docs/2.5.x/reference/remoting.html
答案 4 :(得分:0)
是否可以通过JAX-WS手动创建WS Server和WS Client(无需生成器)?特别是如果您正在开发一个大型应用程序,您希望重用对象,但生成器生成的许多类可以达到99%相同(例如,如果您的应用程序是WS Client,则必须连接到设计糟糕的外部WS服务器)。是否有一些教程如何手动创建ws?
我不喜欢发电机并完全同意http://ogrigas.eu/spring/2010/04/spring-ws-and-jaxb-without-a-code-generator
的原因有很多