ビジネス オブジェクトに新しい Bean を追加しようとしています。
これを行うには、最初に、次のように割り当てて PurchaseOrderDocument クラスにメンバーを追加します。
protected String purchaseOrderCurrentCMActionStatus;
それからもちろん、通常のゲッターとセッターを次のように割り当てます。
public String getPurchaseOrderCurrentCMActionStatus() {
return purchaseOrderCurrentCMActionStatus;
}
public void setPurchaseOrderCurrentCMActionStatus(String purchaseOrderCurrentCMActionStatus) {
this.purchaseOrderCurrentCMActionStatus = purchaseOrderCurrentCMActionStatus;
}
さて、それですべてが私のJavaクラスで起こっています。
そこで、DataDictionary ディレクトリにある PurchaseOrderDocument.xml という対応する XML ファイルに、次の Bean 定義を追加しました -
<bean id="PurchaseOrderDocument-purchaseOrderCurrentCMActionStatus"
parent="PurchaseOrderDocument-purchaseOrderCurrentCMActionStatus-parentBean"/>
<bean id="PurchaseOrderDocument-purchaseOrderCurrentCMActionStatus-parentBean" abstract="true" parent="AttributeDefinition">
<property name="name" value="purchaseOrderCurrentCMActionStatus"/>
<property name="label" value="Current CM Action Status"/>
<property name="required" value="false"/>
<property name="shortLabel" value="CM Status"/>
<property name="control">
<ref bean="HiddenControl"/>
</property>
</bean>
次に、OJB マッピングを作成する必要があるため、ojb.xml ファイルに次の XML コード行を追加しました。
<field-descriptor name="purchaseOrderCurrentCMActionStatus" column="CURR_CM_ACTION_STATUS" jdbc-type="VARCHAR"/>
また、対応する TABLE に列 CURR_CM_ACTION_STATUS を作成しました。そのため、名前が一致していることを 2 回、3 回チェックしました。
右 -
質問は次のとおりです。 PurchaseOrderDocument 内に、この Bean に対して上で指定した「Setter」コードを起動するイベントを待機するトリガーがあります。奇妙なことは、私が書いたこのコードが NULL ポインター例外を生成していることです。
問題を次の行に特定しました-
<bean id="PurchaseOrderDocument-purchaseOrderCurrentCMActionStatus-parentBean" abstract="true" parent="AttributeDefinition">
次の行を変更すると:
parent = "AttributeDefinition"
に
parent = "Note-noteText"
(注はクラスであり、noteText は、継承元のこの Bean にもともと含まれていたメンバー変数ですが、もう Note クラスから継承したくないので、PurchaseOrderDocument クラスに対してローカルにしたいのです。とにかく、そこに Note-noteText がありましたが、null ポインター例外は発生しませんでしたが、トリガーによって「set」メソッドが呼び出された後、データベースには何も書き込まれませんでした。これは偶然にも ORACLE です。)
したがって、これが継承から遠ざかる理由であり、代わりに、この Bean をこのクラスに対してローカルにする必要があります。
私の同僚は、おそらくSpringがFORMでこのBeanを探していると述べましたが、そこにないので、それを突いています...しかし、私には疑問があります。
また、HIDDEN CONTROL を使用していることにも注意してください。parent="AttributeDefinition" テキストを追加すると、コントロール属性が指定されていないというエラーが表示されました。この Bean は USER 入力からではなくコンテンツを取得するため、この HIDDEN CONTROL 属性を指定しました。
多分これは問題の一部ですか??
念のため、スタック トレースを次に示します。
スタックトレース: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:101) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:50) org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:167) org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:121) org.kuali.rice.kns.web.filter.SetResponseBufferSizeFilter.doFilter(SetResponseBufferSizeFilter.java:78) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.SessionFilter.doFilter(SessionFilter.java:41) 根本的な原因 javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NullPointerException org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:861) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794) org.apache.jsp.jsp.module.purap.PurchaseOrder_jsp._jspService(PurchaseOrder_jsp.java:269) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:101) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:50) org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:167) org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:121) org.kuali.rice.kns.web.filter.SetResponseBufferSizeFilter.doFilter(SetResponseBufferSizeFilter.java:78) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.SessionFilter.doFilter(SessionFilter.java:41) 根本的な原因 java.lang.NullPointerException org.kuali.rice.kns.datadictionary.exporter.AttributesMapBuilder.buildAttributeMap(AttributesMapBuilder.java:66) org.kuali.rice.kns.datadictionary.exporter.AttributesMapBuilder.buildAttributesMap(AttributesMapBuilder.java:51) org.kuali.rice.kns.datadictionary.exporter.DocumentEntryMapper.mapEntry(DocumentEntryMapper.java:88) org.kuali.rice.kns.datadictionary.exporter.TransactionalDocumentEntryMapper.mapEntry(TransactionalDocumentEntryMapper.java:30) org.kuali.rice.kns.datadictionary.exporter.DataDictionaryMap.get(DataDictionaryMap.java:60) javax.el.MapELResolver.getValue(MapELResolver.java:51) javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) org.apache.el.parser.AstValue.getValue(AstValue.java:123) org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938) org.apache.jsp.tag.web.kr.documentPage_tag._jspx_meth_c_005fset_005f0(documentPage_tag.java:382) org.apache.jsp.tag.web.kr.documentPage_tag.doTag(documentPage_tag.java:313) org.apache.jsp.jsp.module.purap.PurchaseOrder_jsp._jspService(PurchaseOrder_jsp.java:260) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:101) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:50) org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:167) org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:121) org.kuali.rice.kns.web.filter.SetResponseBufferSizeFilter.doFilter(SetResponseBufferSizeFilter.java:78) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.SessionFilter.doFilter(SessionFilter.java:41)