【问题标题】:rest(JAX-RS) web service with JPA entities and JAXB具有 JPA 实体和 JAXB 的 rest(JAX-RS) Web 服务
【发布时间】:2014-12-23 23:28:36
【问题描述】:

您好,我正在尝试开发 Web 服务。该服务具有 REST 架构 (JAX-RS)。我想在我的 Web 服务和我的数据库(MySQL)之间实现 JPA 休眠,并且我还想实现 JAXB(XML 客户端服务器通信)。问题是有很多教程混合了我不知道的其他框架,比如 Spring 和其他框架,也没有阐明我的想法。 总结一下我想要实现的是:

客户端| JAXB - JAX-RS - JPA | mysql数据库

我想在 Apache Tomcat 上运行我的 Web 服务,我正在使用 Eclipse 开发它。

有没有人知道任何好的教程来开发这个?我的方式正确吗? 非常感谢任何评论。非常感谢。

【问题讨论】:

    标签: mysql hibernate jpa jaxb jersey-2.0


    【解决方案1】:

    我不使用 Eclipse。我使用 Netbeans。出于您的目的,https://netbeans.org/kb/docs/websvc/rest.html 是最好的方法,因为它展示了您想要实现的步骤。您还误导了一些概念。

    根据 Oracle 文档(我强烈建议)-https://docs.oracle.com/javaee/7/tutorial/

    JAX-RS 是一种 Java 编程语言 API,旨在简化使用 REST 架构的应用程序的开发。默认情况下,对于 application/xml 媒体类型,JAX-RS 将使用 JAXB 将对象转换为 XML。

    接下来要了解的一点是为什么需要使用 Web 服务。想象一下,您有一个插入音乐和播放列表的应用程序。现在您要为特定音乐添加字母。您将有很多工作,因为您必须在数据库中找到数百万个要介绍的字母等。因此您可以拥有一个 Web 服务客户端,该客户端可以访问为大量音乐提供字母的 Web 服务。所以您将制作一个call(client)——信息将通过 Json/XML(XML 文档)传递——将转换为 Java 对象(使用 JAX-RS)——您将在数据库(Mysql DB)中引入字母

    相反,如果您想创建 Web 服务,请使用 Soap UI Free - 免费和开源的跨平台功能测试解决方案,为您的应用程序模拟客户端。这真的很容易理解,它将是您当前工作的一个很好的更新。

    【讨论】:

      【解决方案2】:

      运行 web 服务 Tomcat 部署可能不是最简单的方法。如果您需要保持简单,您可以构建一个普通的 J2SE 应用程序并将其作为单个 jar 运行。 Java 6 及更高版本已经具备了所需的一切,包括集成的 http 服务器。看看这段代码: 主类:

      包 com.qnium.test.webservice; 导入 javax.xml.ws.Endpoint; 公共类 WSPublisher { 公共静态无效主要(字符串[]参数){ 尝试 { Endpoint.publish("http://localhost:8080/WS", new WSImpl()); System.out.println("服务准备就绪"); } 捕捉(异常前){ System.out.println("无法发布服务:" + ex); } } }

      定义接口:

      包 com.qnium.test.webservice; 导入 javax.jws.WebMethod; 导入 javax.jws.WebService; 导入 javax.jws.soap.SOAPBinding; 导入 javax.jws.soap.SOAPBinding.Style; @网络服务 @SOAPBinding(样式=样式.RPC) 公共接口 WS { @WebMethod 公共字符串 getHello(); }

      实现接口。在这里你可以添加任何你想要的逻辑,包括通过 Hibernate 访问数据库

      包 com.qnium.test.webservice; 导入 javax.jws.WebService; @WebService(endpointInterface = "com.qnium.test.webservice.WS") 公共类 WSImpl 实现 WS { @覆盖 公共字符串 getHello() 返回“来自 WS 的你好”; } }

      上述方法可能不适用于需要负载平衡、集群等的大型应用程序,但您始终可以在需要时将其移动到应用程序服务器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 2012-10-15
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多