有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaWeb服务使用什么方法?

我正在开发一个具有多个框架(spring、hibernate、spring security、ZK for GUI)的web应用程序,并使用Tomcat作为应用服务器。我必须说我绝对没有java web服务技术的经验。问题是,在不久的将来,我几乎肯定要为一些外部应用程序公开一些服务,我想知道接下来该怎么做(考虑到我正在使用的框架)

我看到并阅读了关于Axis、Axis2、JAX-WS的各种教程和一些问题(link)。。。让我有点困惑的是,我不知道在现有web应用程序中集成服务的常见做法是什么(如果有)(主要是在项目组织方面)。正如我现在看到的,我需要实现的这些服务将部分依赖于现有的源代码,因此我不知道是应该使用完全独立的项目,还是可以将其放在我现有的web app文件夹中(我尝试使用Axis2,但不知道这是否是一种好的做法)

谢谢


共 (5) 个答案

  1. # 1 楼答案

    我对Spring WS 2+和手动Castor映射有很好的经验。这是一个简单但强大的组合

    Spring ws 2:

    • 提供合同优先开发(特别适用于具有多个服务的web应用)
    • 提供WS-annotation
    • 支持XML映射(Castor、JaxB等)

    卡斯特:

    • 基于xml配置的映射
    • 允许将多条消息(请求/响应)映射到一个java对象(基于xml配置)

    如果使用java EE 6服务器,也考虑JAXB进行手动映射:

    • 基于注释的映射
    • 应该比Castor快
    • 允许将多条消息(请求/响应)映射到一个java对象(使用java继承时)
  2. # 2 楼答案

    是否可以通过JAX-WS手动(不使用生成器)创建WS-Server和WS-Client?特别是,如果你正在开发一个大的应用程序,你想重用对象,但是生成器生成了很多类,这些类可能99%相同(例如,如果你的应用程序是WS-Client,你必须连接到设计糟糕的外部WS-Server)。有关于如何手动创建ws的教程吗

    我不喜欢发电机,完全同意http://ogrigas.eu/spring/2010/04/spring-ws-and-jaxb-without-a-code-generator有很多原因

  3. # 3 楼答案

    如何组织项目

    总的来说,我同意@ericacm,但有一件事你应该记住。。。你说你将在不久的将来开发大量的服务。您可能需要在单独的服务器上托管服务,例如出于性能、可用性或可维护性原因。这可能会影响您分离项目的决定。此外,分离“加强”了松散耦合,但因此带来了其他挑战,如跨多场战争的会话共享。这是一个逐案的决定

    如果我是在你的情况下,我首先会问自己,服务在逻辑上是否属于web应用程序

    实施

    在WS-*实现方面,您必须做出两个决定:

    1. 决定要使用的API;今天,我看不出有任何理由不把JAX-WS和JAXB作为API一起使用,它们工作得很好,而且是标准化的
    2. 决定一个框架;我有使用Axis2和METRO的经验(请记住,JSE1.6+提供了基本的JAX-WS支持)。两者都很有效。如果使用JAX-WS API,那么更改框架就相当容易了
  4. # 4 楼答案

    Spring WS是用于简单web服务的复杂框架。如果您想完全理解web服务,并了解web服务的细节,请学习Spring WS。它非常灵活,提供了很多选择

    否则,如果您想要更简单的替代方案,请使用JAX-WS。Spring支持JAX-WS注释。参考第17.5.7节。使用JAX-WSRI的Spring支持导出web服务

    http://static.springsource.org/spring/docs/2.5.x/reference/remoting.html

  5. # 5 楼答案

    你可以把它们放在同一个项目中。每个web服务都将是一个附加的接口和实现类以及一些配置

    因为您使用的是Spring CXF,所以它是JAX-WS的一个很好的选择,因为它与Spring集成得很好。把this page作为开始