2

作为企业应用程序的新手,我正在努力完成它。

我在 Netbeans 7.1.2 中开发了一个企业应用程序。它使用默认的 Glassfish 服务器成功运行。由于需要更改服务器,我下载并安装了 Tomee+ 服务器,并进行了一些更改以使 Tomee Manager Interface 在我的系统上工作。我将 .ear 文件(Glassfish 服务器输出)部署到 Tomee+ 中,将其放置在 Tomee webapps 文件夹中,服务器处于运行状态。它会自动部署并出现在 Tomcat Web 应用程序管理器界面中。

然后,通过在地址栏中提供合适的路径,例如http://localhost:8080/app-war/faces/app.xhtml,它提供了前端屏幕,但如果我单击提交按钮,后端进程将无法正常工作。相反,它只是提供一个状态页面,例如HTTP Status 500 - javax.el.ELException: javax.ejb.EJBTransactionRolledbackException: Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization.

我的问题是:我在 Tomee+ 服务器中部署它的步骤出了什么问题?

4

1 回答 1

0

没有更详细的堆栈?

顺便说一句,您可以尝试:1)检查您在 tomee.xml 中是否有该行 2)将您的耳朵放在 /apps/ 而不是 webapps/

重点是默认情况下(可以使用快照/下一个版本进行配置) tomee 将耳朵提取到文件夹中,只需删除扩展名(例如 webapps/your-ear/),然后 tomcat 将此文件夹作为 webapp,因此您的部署是没有更多的预期。这就是为什么将它移动到不受tomcat(应用程序)管理的文件夹通常就足够了。

也就是说,Glassfish 事务管理有时过于宽容(为什么我要问你得到的完整堆栈)。

于 2012-12-09T10:20:32.913 回答