Wednesday, 6 December 2017

Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'row' resolved to null


When we are working with table there are some cases we face the following error:

by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'row' resolved to null


As per my findings, this issue will occur when we are working with LOVs in the table or with the QBE.

Working with LOVs:
   Is primary is part of the LOV then you can face this issue. To fix this issue then the suggested solution is to create surrogate key.

QBE:
   If you face this issue when you try to enable QBE, then make sure that you are not referring to the row in filter facets in the table columns.

By default QBE shows input textbox for all the columns, if you want to show different component like date component or LOV then Filter facets are used to render the different component when QBE is enabled.

  <f:facet name="filter">
     <af:selectOneChoice label="Access Mode" id="soc2" value="#{vs.filterCriteria.AccessMode}" simple="true">
         <af:selectItem label="#{null}" id="si4" value="#{null}"/>
         <af:selectItem label="Public" id="si5" value="1"/>
         <af:selectItem label="Private" id="si6" value="0"/>
     </af:selectOneChoice>
  </f:facet>

If you facing 'Target Unreachable, identifier 'row' resolved to null' issue with QBE then you have to make sure that you are referring to row attribute in the filter facet.
Ex:
<af:selectOneChoice label="Access Mode" id="soc2" value="#{row.bindings.pfscopeBean.AccessMode}" simple="true">

It should refer with the varstatus property like
 <af:selectOneChoice label="Access Mode" id="soc2" value="#{vs.filterCriteria.AccessMode}" simple="true">


Note:
Table definition in the jsff will be like:
<af:table value="#{bindings.myVO1.collectionModel}"
     var="row"
     rows="#{bindings.myVO1.rangeSize}"
     varstatus="vs"
.......
</af:table>

If above suggestion will not work try is by setting changeEventPolisy=ppr for the detail table iterator and the tree binding in the pageDef file

Friday, 17 June 2016

Error on Deploying BPEL: java.lang.NoClassDefFoundError: com/collaxa/cube/util/JavaHelper

The following error occurred while deploying the BPEL composite:


[05:11:07 PM] HTTP error code returned [500]
[05:11:07 PM] Error message from server:
There was an error deploying the composite on soa_server1: Deployment Failed: Error occurred during deployment of component: Fulfillment to service engine: implementation.bpel, for composite: POProcessing: ORABPEL-05250

Error deploying BPEL suitcase.
error while attempting to deploy the BPEL component file "C:\Oracle\Middleware\user_projects\domains\soa_domain\servers\soa_server1\dc\soa_4f56ee57-8dc4-401a-8267-3b8fed1bb15f"; the exception reported is: java.lang.NoClassDefFoundError: com/collaxa/cube/util/JavaHelper

This error contained an exception thrown by the underlying deployment module.
Verify the exception trace in the log (with logging level set to debug mode).
.
 
[05:11:07 PM] Check server log for more details.
[05:11:07 PM] Error deploying archive sca_POProcessing_rev1.0.jar to partition "default" on server soa_server1 
[05:11:07 PM] ####  Deployment incomplete.  ####
[05:11:07 PM] Error deploying archive file:/C:/JDeveloper/mywork/POApplication/POProcessing/deploy/sca_POProcessing_rev1.0.jar 
 (oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)

Sol: Trying to get the solution for this issue.

Error: The JCA Binding Component is unable to startup the Resource Adapter specified in the element: location='eis/DB/soademo'

Facing the following error while testing the CreditCardValidation composite from the activity guide:


BINDING.JCA-12563 Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'CreditCardDBServiceSelect' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. CreditCardValidation:CreditCardDBService [ CreditCardDBService_ptt::CreditCardDBServiceSelect(CreditCardDBServiceSelect_inputParameters,CreditcardsCollection) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element  The JCA Binding Component is unable to startup the Resource Adapter specified in the  element: location='eis/DB/soademo'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '' element in weblogic-ra.xml has not been set to eis/DB/soademo. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server Please make sure that the JCA connection factory and any dependent connection factories have been configured with a sufficient limit for max connections. Please also make sure that the physical connection to the backend EIS is available and the backend itself is accepting connections. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. 


Issue is with the JCA Adapter setting, follow the below steps to create new:

Creating a Data Source

  •  Login to weblogic console - http://localhost:7001/console
  • GOTO Domain -> Services -> Data Sources
  • Click New, and enter the following values to the properties
    • Name: soademoDatabase
    • JNDI Name: jdbc/soademoDatabase
    • Database Type: Oracle
  • Click Next, and then Next
  • Enter the connection properties details in the Connection properties page, then click Next
  • Click Test Configuration to test the data base connection properties
  • Click Next, and select the targets and then click Finish

Creating a Connection Pool

  • GOTO Domain -> Deployments
  • Click on DBAdapter in deployments page
  • Click Configuration tab, and then click Outbound Connection Pools tab.
  • Click New, Select javax.resource.cci.ConnectionFactory, and then click Next.
  • Provide JNDI Name: field, enter eis/DB/soademoDatabase.
    • Note: The JNDI value that you enter in this step is not the same value that you entered in create data source. The JNDI name specified in this step must match the value you enter in your database connection you create when building your application
  • Click Finish.
  • In the Path field, select or enter the path of a deployment plan file. The path must end with ".xml".
  • In the Properties field, enter the value for xADataSourceName as jdbc/soademoDatabase.
    • Note: Tricky part is to modify the Datasource name for xADataSourceName, please click on the corresponding row for column PropertyValue and then use "EnterKey from Key borad"

Ref: http://docs.oracle.com/cd/E12839_01/integration.1111/e10231/life_cycle.htm#BABBEDBF