首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >由非法参数异常导致的EJB调用过程中发生系统异常

由非法参数异常导致的EJB调用过程中发生系统异常
EN

Stack Overflow用户
提问于 2019-04-15 21:27:14
回答 1查看 1.1K关注 0票数 0

我不太确定它出了什么问题。它会一直显示这些错误消息。似乎有一些空值,但我似乎无法识别和纠正这些问题。有谁能帮忙看一眼吗?

更新:我认为问题应该出现在managedbean或post构造方法中,但我似乎找不到原因。

汇总错误消息

代码语言:javascript
复制
System exception occurred during an invocation on EJB RequestController, 
method: public entity.Request ejb.session.stateless.RequestController.retrieveRequestByRequestId(java.lang.Long) throws exception.RequestNotFoundException

Caused by: java.lang.IllegalArgumentException: An instance of a null PK has been incorrectly provided for this find operation.

DeleteRequestManagedBean中的后期构造

代码语言:javascript
复制
@PostConstruct
public void postConstruct() {

    requestId = (Long)FacesContext.getCurrentInstance().getExternalContext().getFlash().get("request");
    try {
        request = requestControllerLocal.retrieveRequestByRequestId(requestId);
    }
//Removed some irrelevant codes

DeleteRequestManagedBean中的删除请求方法

代码语言:javascript
复制
public void deleteRequest() {

    requestControllerLocal.deleteRequest(requestId); 
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Request has been successfully deleted: ", null));
}

用于删除xhtml中的请求的按钮

代码语言:javascript
复制
<p:commandButton value="Remove" icon ="fa fa-fw fa-remove" styleClass="p-btnDelete" actionListener="#{deleteRequestManagedBean.deleteRequest}"/>

RequestController (无状态会话Delete)中的删除请求方法

代码语言:javascript
复制
@Override
public void deleteRequest(Long requestId) throws RequestNotFoundException, DeleteRequestException {
//Removed some irrelevant codes
Request requestToDelete = retrieveRequestByRequestId(requestId);
requestToDelete.getCategory().getRequests().remove(requestToDelete);
        em.remove(requestToDelete);
}

如果您还需要任何其他信息,请随时告诉我。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-16 09:09:11

事实证明,我的managedbean和xhtml页面都有问题。

我必须使用getAttribute(),并从xhtml页面获取属性"postRToDelete“。在没有检索到它的情况下,它一直给我空指针,非法参数异常。

这里是为了那些和我犯了同样错误的人的利益。

DeleteRequestManagedbean

代码语言:javascript
复制
Request request = (Request) event.getComponent().getAttributes().get("postRToDelete");

xhtml页面

代码语言:javascript
复制
<p:commandButton value="Delete" icon ="fa fa-fw fa-remove" styleClass="p-btnDelete" actionListener="#{profileManagedBean.deletePostedRequest}" update="@form">

<!--attribute from here-->
<f:attribute name="postRToDelete" value="#{postedReq}"/>
</p:commandButton>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55690255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档