netbeans,EJB,glassfish,电子商务教程问题

时间:2012-04-02 22:48:48

标签: java netbeans glassfish ejb

我一直在关注此处的电子商务教程:http://netbeans.org/kb/docs/javaee/ecommerce/intro.html

项目代码回购here

我遇到了一些我认为相关的问题:

1:尝试在管理员页面上查看客户的订单导致:

**WARNING**: EJB5184:A system exception occurred during an invocation on EJB OrderManager, method: public java.util.Map session.OrderManager.getOrderDetails(int)

**WARNING**: javax.ejb.EJBTransactionRolledbackException

**WARNING**: EJB5184:A system exception occurred during an invocation on EJB OrderedproductFacade, method: public java.util.List session.OrderedproductFacade.findByOrderId(java.lang.Object)

**WARNING**: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean
Caused by: java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of customerOrderId that does not exist in the query string SELECT o FROM Orderedproduct o WHERE o.orderedproductPK.custOrderid = :custOrderid.

2:尝试在管理页面中查看特定订单的详细信息,结果如下:

WARNING: StandardWrapperValve[AdminServlet]: PWC1406: Servlet.service() for servlet AdminServlet threw exception
Caused by: java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of customerOrderId that does not exist in the query string SELECT o FROM Orderedproduct o WHERE o.orderedproductPK.custOrderid = :custOrderid.

这两个问题都有' findByOrderId '方法的共同点,我不知道它有什么问题。

违规方法位于以下目录中:src / jsf_crud / src / java / session / OrderedProductFacade.java

(我会将其链接为超链接,但垃圾邮件防范措施会阻止我)

不确定最佳行动方案是什么,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的查询需要一个名为“custOrderid”的参数,而不是“customerOrderId”

更改查询或更改被调参数。

OrderedProduct类中的查询使用“customerOrderId”

http://netbeans.org/projects/samples/sources/samples-source-code/content/samples/javaee/AffableBean/src/java/entity/OrderedProduct.java