【问题标题】:Which component based Java-Framework can also do Webservices?哪个基于组件的 Java 框架也可以做 Web 服务?
【发布时间】:2012-03-19 11:20:34
【问题描述】:

对于一个新项目,我想使用基于组件的框架(考虑 Wicket 或 Tapestry)。这是一个 Intranet 应用程序,但我还必须提供 Restful Webservices。

在谷歌搜索后,我没有找到任何好的解决方案,它描述了如何将 Wicket 与任何符合 Jax-RS 的库集成。

以前有人做过吗?

我已经看到,Wicket 可以提供类似 REST 的 URL,但我会通过 accept-header 在成熟的 Wicket-Gui 和 web 服务之间切换。

我发现的一切,建议,创建一个不同的 vhost/url-route。

如果您说,tapestry(或任何其他框架)要好得多,对于我想做的事情,请告诉我。但不知何故,我喜欢检票口。

【问题讨论】:

  • 您可能想看看 Play。它很容易学习,而且非常强大,而且还有很长的保质期。
  • 我试过 Play,是的,我有点喜欢它。但是我直接用了2.0rc,遇到了一些bug。似乎没有为我准备好企业。我必须使用旧版 Oracle 数据库。我遇到的第一个错误:ebean 不支持带有单独 JoinTable 的 OnToMany。它在一些邮件列表中提到,但似乎没有修复。第二:我用scala尝试了异常。这无法处理来自我们数据库的 BigInt 索引。够我玩了。 :( 但它肯定有一些非常好的方面,如果你可以从头开始的话。
  • 如果您想要一个框架同时提供“正常”Web 访问和 REST,那么 Wicket 绝对不是该框架。但是,将任何此类框架与 Wicket 集成都很容易,因为 Wicket 的入口点是一个映射到基本 url 的单个 servlet 过滤器。所以你需要做的就是将你的 REST 框架映射到另一个 url。
  • 好的...我会看看另一个框架。也许 Tapestry 甚至 Spring。顺便说一句:我发现了一个将近一岁的邮件列表条目:groups.google.com/group/play-framework/browse_thread/thread/… 这家伙在 play2.0 中遇到了与我在 rc3 中相同的异常问题。所以对我来说,旧数据库似乎还没有为生产做好准备。

标签: java rest frameworks wicket tapestry


【解决方案1】:

Play 和 Spring MVC 都不是基于组件的。 在 Wicket 1.5 中,您可以使用自己的 IRequestMapper 来检查标头并决定是使用默认处理(基于组件)还是使用自定义 IRequestHandler 来传递 JSON、XML 等...请参阅 TextRequestHandler 以获得灵感。您的自定义 IRequestMapper 应设置为“root”,以便能够首先获取传入请求,例如,请参阅 HttpsMapper 和 CryptoMapper 的用法。 请随时在 users@ 邮件列表中询问更多详细信息。

【讨论】:

    【解决方案2】:

    我建议使用 Spring“契约优先”Web 服务或 REST:

    http://static.springsource.org/spring-ws/site/ http://www.ibm.com/developerworks/webservices/library/wa-spring3webserv/index.html

    特别是如果您对框架感兴趣。 Spring 不仅仅是一个 Web MVC 框架。它给你:

    1. 依赖注入
    2. 面向方面的编程
    3. 用于 Web MVC、持久性、远程处理、消息传递、安全性、Web 服务等的坚如磐石的模块。

    我不确定为什么您认为基于组件的方法更胜一筹,但在我看来,它已被 HTML、CSS、JavaScript 和 jQuery 抛诸脑后。我会重新考虑这个要求。

    Web 服务的实现根本不应该知道或关心使用什么技术来实现客户端。这就是 Web 服务的美妙之处:如果处理得当,它们可以存活更长时间。 UI 可以来来去去,但服务中的业务逻辑和基础可以保留。他们可以处理运行在台式机、浏览器、移动设备甚至谷歌平视显示器上的 UI。我们拭目以待。

    【讨论】:

    • 我同意 spring 摇滚并且非常擅长 Web 服务,但是......它不像他要求的那样基于组件。
    • 从未尝试过 Spring。认为基于组件的框架将更适合 Intranet(更高效),因为您不需要最热门和最精美的 ui。它只需要工作。我错了吗?
    • 没办法。如果市场是正确的,那么你一定是错的。我看到了对基于 HTML、CSS、JavaScript 尤其是 jQuery 的 Web UI 的更多支持。 Tapestry 和 JSF 已经死了,而且已经死了很长时间了。
    • 好的,谢谢你的回答,因为你鼓励我尝试春天。无论如何:你知道任何电子书或 crud-tutorial 开始吗?带有表单和数据库访问权限的示例也很好:D
    • Tapestry 死了?我注意到它最近被越来越多地使用了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多