gpt4 book ai didi

java - 无法让 REST WS 与 Netbeans 一起工作

转载 作者:行者123 更新时间:2023-11-28 22:32:35 26 4
gpt4 key购买 nike

我正在关注 Netbeans 网站上的教程,但无法使其正常工作。我在要点中发布了相关文件 here .我选择了一个 maven 项目,Tomcat 7 和 Java 5EE(因为 Java 6EE 显然不适用于 Tomcat 7)

在按照教程进行操作时,我创建了一个带有“用户”表的数据库,Netbeans 可以连接到该数据库并创建必要的文件,因此我的数据库没有任何问题。当我运行 Web 应用程序时,它显示默认的 index.jsp 页面,因此 Web 服务器也可以工作。

如果我尝试访问其中一个资源 (http://localhost:8084/test3/resources/com.mycompany.test3.user/count),我会遇到以下异常:

java.lang.RuntimeException: javax.naming.NameNotFoundException: Name persistence-factory is not bound in this Context
service.UserRESTFacade.getJpaController(UserRESTFacade.java:33)
service.UserRESTFacade.count(UserRESTFacade.java:97)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:601)
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)

据我所知,persistence.xml 看起来不错,Java 文件中引用了该名称,所以我不知道从哪里开始。如前所述,这些文件以 GIST 的形式提供(请参阅顶部的链接)

如果有帮助,我正在运行 Netbeans 和 Tomcat 的版本 7

最佳答案

此错误表示您的应用程序试图在 JNDI 中查找数据源但失败了。 JNDI 是一种为绑定(bind)到应用程序容器的应用程序提供配置的方法,它最常用于配置数据库连接。

搜索“Tomcat JNDI JPA”,您应该会得到一些有用的信息。

编辑:

好的,我仔细查看了您的代码。我实际上不确定 JNDI 查找失败的原因,但由于您设置了应用程序管理的连接,您应该能够完全跳过 JNDI 并像这样获取工厂:

// use the name specified in persistence.xml
javax.persistence.Persistence.createEntityManagerFactory("com.mycompany_test3_war_1.0-SNAPSHOTPU")

另一件事:创建一个 EntityManagerFactory 是昂贵的,所以你应该只做一次。你现在拥有它的方式是在每笔交易中创建一个,这将是非常低效的。我要做的是在应用程序启动时创建它,然后将它存储在某个地方,例如 ServletContext。

关于java - 无法让 REST WS 与 Netbeans 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9046333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com