我一直试图让以下Eclipselink示例正常运行,成功率不到0%:
A) http://wiki.eclipse.org/EclipseLink/Examples/JPARS/Simple
B) GIT中://git.eclipse.org/gitroot/eclipselink/examples/mysports.git
两个样本都是最新的,应该“开箱即用”。我的结果: A)在glassfish上启动和部署,但应用程序完全没有响应 B)没有部署,因为glassfish没有找到持久化xml中提到的数据源:java:global / mysports
对于我都试图了解它们应该如何工作的信息,但经过两天的搜索文档后,我可以安全地说:实际上没有记录。
对于A)我完全无能为力,没有为此示例配置任何内容,但提供的与REST服务交互的URL始终返回404并且没有任何日志或错误消息。
对于B)除了破碎的数据源(我猜我的错),我尝试设置默认的JDBC数据源,看看至少REST服务本身是否有效:它看起来已经死了,打开样本JSF时出现异常页面(页面内的引用变量都解析为NULL)。
有人试过试过这些样品吗?经过几个小时远离任何可测试的东西后,我感到非常沮丧......
也许有些问题作为起点: - JPA-RS如何在appserver中注册?我该怎么判断它是不是?它映射到哪个URL? - 这个神奇的“java:global / mysports”数据源如何工作? - maven配置很有趣,我无法正确调试两个样本中的任何一个(在任何时间点都没有命中断点)。有什么想法吗?
答案 0 :(得分:4)
如果您使用Glassfish早于Glassfish 4.0(http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/),则需要从http://www.eclipse.org/eclipselink/downloads/nightly.php下载更新版本的EclipseLink 2.4.2二进制文件(2.4.2每夜构建结果)并替换以下文件在$ GLASSFISH_HOME / glassfish / modules下面,你在上面下载了相应的jar:
确保在更换上面列出的软件包之后,以及在重新启动Glassfish之前删除$ GLASSFISH_HOME \ glassfish \ domains \ your_domain \ osgi-cache目录,以清除Glassfish osgi缓存。
答案 1 :(得分:2)
这些都是高级示例,除非您正在寻找这些特定功能,我建议您从更简单的示例开始。
此处记录了许多EclipseLink JPA示例,
http://wiki.eclipse.org/EclipseLink/Examples
大多数示例仍然在SVN中,
http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/examples/
有关JPA-RS示例的文档,请参阅
http://wiki.eclipse.org/EclipseLink/Examples/JPA#JPA-RS
如果遇到特定问题,请尝试在示例的wiki讨论页面中添加问题。
MySports示例非常先进。除非您正在寻找可扩展的实体和多租户,否则我不建议从这个示例开始。
答案 2 :(得分:1)
要添加詹姆斯的评论,如果您对JPA-RS特别感兴趣,也许这些额外的评论会有所帮助。我还建议在维基讨论页面上提问。
JPA-RS通过WEB-INF / lib目录中存在的org.eclipse.persistence.jpars_ [version] .jar在appserver中注册。这个jar包含web-fragment.xml,它定义了JPA-RS服务。如果以下URL模式返回持久性单元元数据,您将知道它是否已部署:
http://<server>:<port>/<applicationName>/persistence
JPA-RS的一些其他文档: - http://www.eclipse.org/eclipselink/documentation/2.4/solutions/restful_jpa001.htm - wiki.eclipse.org/EclipseLink/Development/2.4.0/JPA-RS/REST-API
有助于您调试的一件事是查看Glassfish服务器日志。如果您在Eclipse中运行,请在Server视图中右键单击Glassfish服务器,转到Glassfish-&gt;查看日志文件,它将在控制台视图中打开服务器日志。这将向您显示部署时发生的情况,并将提醒您任何错误。另外请务必仔细检查您的网址。
答案 3 :(得分:0)
好的,女士们。我的一个朋友有强烈的想法强制所有登录eclipselink-jpars库(通过在我们能想到的每个文件中设置此值),实际上我们发现了一个异常,即在最低的日志级别中隐藏了没有好的原因:
javax.xml.bind.PropertyException: name: eclipselink.json.include-root value: false
无论那意味着什么,但这再一次让我相信我暂时不会使用这个功能/ lib。应该在所有日志级别上都可以看到异常,特别是如果我下到FINE(如示例中所述!)!因此,我几乎失去了三天。