gpt4 book ai didi

java - 当应用程序尝试将数据写入数据库时​​出现 JBAS011469 错误。 (JBossAS7, MySql)

转载 作者:行者123 更新时间:2023-11-29 00:19:37 34 4
gpt4 key购买 nike

我是 Java EE 世界的新手。为了提高我的编程体验,我选择了 JBoss Developer Studio 和带有 MySQL 数据库的 JBoss AS 7 服务器。我在 Fedora 20 中使用这些工具。JBoss 有一个示例应用程序 ( jboss-as-kitchensink.zip ),我想像这个例子一样创建我自己的简单示例应用程序。 kitchensink 示例使用 xml 来存储数据,我使用的是 MySql。我无法从 jsf 页面插入数据。如果我尝试过,我会在控制台收到这条消息:

INFO [com.itemsapp.service.ItemInsertion] (http-localhost-127.0.0.1-8080-1) Inserting Lenovo 
INFO [javax.enterprise.resource.webcontainer.jsf.renderkit] (http-localhost-127.0.0.1-8080-1) WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=null[severity=(ERROR 2), summary=(JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)), detail=(Insertation unsuccessful)]

但如果我手动插入数据,我可以从数据库中获取该数据 as you can see here .

INSERT INTO `itemsapp`.`ITEM`(`ITEM_ID`,`ITEM_PRICE`,`MODEL_NO`,`NAME`,`TOTAL_NO`)VALUES(1,250,"Inspiron 3520","DELL",12);
SELECT * FROM itemsapp.ITEM;

我从 jbdevstudio 存档了我的项目 https://dl.dropboxusercontent.com/u/827503/44ums/ItemsApp_jsf_kts.zip .

我做错了什么?

有人知道如何更改此代码吗?

提前感谢您提供的任何帮助。

P.S.:链接指向 Dropbox 链接。

最佳答案

乍一看,您收到的错误意味着您的应用程序需要一个事务才能将您的项目实例对象持久保存在 mysql 数据库中。

我没有看到 JBoss 示例,但是在使用平面 xml 存储时肯定不需要持久性(如 JPA:Java Persistence API)。

因此您需要声明一个持久性单元(在 META-INF 文件夹内的 persistence.xml 文件中),并通过 EntityManager 访问它。

当您开始进入美妙的 JEE 世界时,我建议您选择一个示例持久性应用程序,而不是改编一个只将您的实例持久化为 XML 的应用程序。空项目可能作为 Maven archetypes 提供。

我发现 vogella 教程在学习 Java 技术时非常有帮助:请参阅此 one .

最后一句话:JPA 是 API; Hibernate 或 EclipseLink 或其他 ORM 是 JPA 的实现(不过 Hibernate 对其进行了扩展)。

希望对你有帮助。

关于java - 当应用程序尝试将数据写入数据库时​​出现 JBAS011469 错误。 (JBossAS7, MySql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21563974/

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