Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 由非法参数异常引起的EJB调用期间发生系统异常_Jpa_Jsf - Fatal编程技术网

Jpa 由非法参数异常引起的EJB调用期间发生系统异常

Jpa 由非法参数异常引起的EJB调用期间发生系统异常,jpa,jsf,Jpa,Jsf,我不太确定它出了什么问题。它会不断显示这些错误消息。似乎存在一些空值,但我似乎无法识别和纠正这些问题。有人能帮忙看一下吗 更新:我认为这个问题应该在managedbean或post-construct方法中解决,但我似乎无法找到原因 摘要错误消息 System exception occurred during an invocation on EJB RequestController, method: public entity.Request ejb.session.stateless.

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

更新:我认为这个问题应该在managedbean或post-construct方法中解决,但我似乎无法找到原因

摘要错误消息

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.
<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>
在DeleteRequestManagedBean中后期构造

@PostConstruct
public void postConstruct() {

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

    requestControllerLocal.deleteRequest(requestId); 
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Request has been successfully deleted: ", null));
}
@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);
}
Request request = (Request) event.getComponent().getAttributes().get("postRToDelete");
DeleteRequestManagedBean中的Delete请求方法

@PostConstruct
public void postConstruct() {

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

    requestControllerLocal.deleteRequest(requestId); 
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Request has been successfully deleted: ", null));
}
@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);
}
Request request = (Request) event.getComponent().getAttributes().get("postRToDelete");
在xhtml中删除请求的按钮

<p:commandButton value="Remove" icon ="fa fa-fw fa-remove" styleClass="p-btnDelete" actionListener="#{deleteRequestManagedBean.deleteRequest}"/>

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

我的managedbean和xhtml页面都有问题

我必须改用getAttribute()并从xhtml页面获取属性“postRToDelete”。没有得到检索,它一直给我空指针,非法参数异常

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

DeleteRequestManagedbean

@PostConstruct
public void postConstruct() {

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

    requestControllerLocal.deleteRequest(requestId); 
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Request has been successfully deleted: ", null));
}
@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);
}
Request request = (Request) event.getComponent().getAttributes().get("postRToDelete");
xhtml页面

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.
<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>


您将实体的PK作为nullHi发送到那里,您能告诉我哪部分吗?在尝试删除请求之前,我正在尝试获取页面上请求的id,但似乎失败了。请检查requestId值并验证requestToDelete对象值?当我尝试打印requestId时,它会引发空指针异常。但是我想我已经在使用post构造来加载请求了?我是否错误地进行了后期构造?请在PostConstruct flash=FacesContext.getCurrentInstance().getExternalContext().getFlash()中检查您的flash对象;