Portal Runtime Error - Login Error after installation or upgrade
Caused By: Portal not finding the correct par file.
PAR File Name: com.sap.portal.navigation.service.par
Solution: After removing the BAK file com.sap.portal.navigation.service.par.bak the file which got converted after deploying PAR file com.sap.portal.navigation.service.par. Redeploy the PAR file com.sap.portal.navigation.service.par in <j2ee_home>/cluster/server/services/ servlet_jsp/work/jspTemp/irj/root/WEB-INF/deployment\pcd after stopping EP.
Portal Runtime Error: IConnectorGatewayService
Trying to connect to backened system using JCA Connection framework gets error at runtime:
Solution: Interface IConnectorGatewayService - com.sapportals.portal.ivs.cg
Interface IConnectorService - com.sapportals.portal.ivs.cg
When trying to connect to backened system, calling
IConnectorGatewayService cgService =(IConnectorGatewayService) connectorservice and when you get error then in that case it means your portalapp.xml is incorrect and you are missing the following sharing reference/service refernece in your portalapp.xml. It should be like this:
code<?xml version="1.0" encoding="utf-8"?>
<property name="SharingReference" value="com.sap.portal.ivs.connectorservice"/>
<property name="className" value="com.ust.jca.test"/>
Portal Runtime Error: ESS Functionality - RFC_ERROR on ESS Personal Information
Caused by: ESS = com.sap.aii.proxy.framework.core.BaseProxyException : Access via 'NULL' object reference not possible., error key: RFC_ERROR_SYSTEM_FAILURE
at com.sap.aii.proxy.framework.core.AbstractProxy.send $(AbstractProxy.java:150)
at com.sap.xss.hr.per.xx.family.model.HRXSS_PER_P0021_ XX.hrxss_Per_Modify_P0021_Xx(HRXSS_PER_P0021_XX.ja va:302)
at com.sap.xss.hr.per.xx.family.model.Hrxss_Per_Modify _P0021_Xx_Input.doExecute(Hrxss_Per_Modify_P0021_X x_Input.java:137)
at com.sap.tc.webdynpro.modelimpl.dynamicrfc.DynamicRF CModelClassExecutable.execute(DynamicRFCModelClass Executable.java:92)
Solution: Apply OSS Note 1018036 - Access not possible using NULL object reference error in ESS.
and it will fix the field errors.
In ESS Personal information scenario when end user clicks on review after editing the record it dumps with the following error:
"access not possible using NULL object reference, error key:
Reason and Prerequisites
In case record is not modified successfully it should discard the trial.Due to program error this was not happening correctly
Code changes were done in ESS adapter to handle this scenario
Note 984825: "No Data record for key" error in ESS persinfo scenarios
Portal Runtime Error: IConnectorGatewayService throws an Error on Service call
A blank portalapp.xml file that defines the application properties, as well as the components and services in the application. Structure of the portalapp.xml goes like this:
In EP 6.0 with Support Pack 9 + PDK connecting to SQL Server using JDBC
code<?xml version="1.0" encoding="utf-8"?>
<property name="PrivateSharingReference" value="com.sap.portal.htmlb,com.sap.portal.ivs.connectorservice"/>
<property name="ClassName" value="com.linqit.SimpleJDBC"/>
<property name="JSP" value="pagelet/display.jsp"/>
<property name="System" value="xxxxxxxxDB"/>
<property name="Query" value="SELECT dbo.Products.ProductName,dbo.Categories.CategoryName FROM dbo.Products,dbo.Categories WHERE dbo.Categories.CategoryID=dbo.Products.ProductID"/>
<property name="tagLib" value="/SERVICE/htmlb/taglib/htmlb.tld"/>
Solution: Add an additional Service Reference in the portalapp.xml for SP9
<property name="ServicesReference" value="com.sap.portal.ivs.connectorservice"/>
<property name="PrivateSharingReference" value="com.sap.portal.htmlb"/>
Portal Runtime Error: Missing Jar file for the classes IConnectorGatewayService and IConnectorService
Caused By: The project was not built since its classpath is incomplete. Cannot find the class file for com.sapportals.portal.ivs.cg.ConnectionProperties. Fix the classpath then try rebuilding this project.
Solution: Locate the following libraries by doing search under \usr\sap\<SID>\<INSTANCE ID>\j2ee:
JAR file portal_services_api_lib.jar that contains:
Locate and add required JAR file to your project
Include portal_services_api_lib.jar in the project class path located at x:\usr\sap\\JC00\j2ee\cluster\server0\bin\ext\com.sap.portal.servi
Different support pack levels have different JAR files for classes. JAR Finder is an excellent tool to locate the JAR files for the libraries
For JAR Class Finder check this blog:
Portal Runtime Error: JCO cannot load its RFC middleware layer
Where SAP JCo Architecture goes like this: In SAP JCo (standalone version), starting from a Java application, a Java method is forwarded via the JCo Java API and an additional Middleware Interface to RFC Middleware, where it is connected to an RFC (ABAP) call using the JNI (Java Native Interface) layer, and sent to the SAP system. Using the same method in the other direction, an RFC Call is converted to Java and forwarded to the Java application.
Exception: Exception in thread: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
Native Library C:\WINDOWS\system32\sapjcorfc.dll already loaded in another classloader
JCO API for J2EE Aplication development with WAS 6.40.
Caused By: Bug Id: 4299094 & 4642062 on the Java SUN Developer Network
Class Loader did not unload native library when applet closedError Message: Java Exception: java.lang.UnsatisfiedLinkError: Native Library C:\DRIVERS\CP8\akl5033\bin\Bug.dll already loaded in another classloader
Native Library Puiss loaded.java.lang.UnsatisfiedLinkError: Puiss
Evaluation: In the current VM implementation, a native library can only be associated with one classloader. Thus, when multiple applets attempt to use the same library, the VM tries to associate the library with more than one classloader, and that's why it fails. Thus, this is a limitation of the current VM implementation, and it is not a bug.
cannot load same DLL from more than one applet in browserError Message: unsatisfied link error", "dll already loaded by an xxxxx classloader". Evaluation: This is intentional. Each applet is loaded with its own classloader, and a native library cannot be loaded by more than one classloader.
This is in part a security concern, as we don't want one classloader's app to muck up another classloader's app by tampering with native library state.
Solution*: Apply OSS Notes 542175 -* Don't include JCO into J2EE application, use library instead
java.lang.ExceptionInInitializerError: JCO.classInitialize():Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'Native Library ...sapjcorfc.dll already loaded in another classloader
Reason and Prerequisites
In SAP J2EE Engine as well as in INQMY AppServer each application is loaded in its own classloader. Reason: security, application isolation.
That's why if two applicatinos use JCO.jar and each includes it into own EAR file then jco is loaded twice in different classloaders and these classloaders try to load the native library simultaneously, this fact explains the error message.
The same may happen with any other stuff which uses native code.
The same may happen during redeploy of the application: each version of the application has own classloader. The old one is freed and should be garbage collected but because of delayed garbage collection even if your application is the only one that uses jco during redeploy there exist simultaneously two classloaders (old and new ones) loading jco.jar and the error appears.
Don't include jco jar into your application, for example into WEB-INF/lib.
Use central (shared) instance of jco.jar. In sap j2ee 620 the library jco is predefined, see server/managers/library.txt. The only thing you have to do is to define a reference from your application to this library in reference.txt like
reference myAppName library:jco
In inqmy 4.2.7 you need to add library jco jco.jar into library.txt or install the prepared package (see notes 431977, 451739).
In old in-q-my versions the reference in reference.txt had to be added manually (see notes 435363, 431977, 451739, 509883), in 620 you may specify the reference during deployment in the deploy tool (Tab Deploy, Menu Libraries), in deploy.xml or from the server command console:
> add deploy
> changeref -m yourAppName library:jco
For upgrading of jco 2.0 please see notes 529396, 538282, 539539.
Note 711890: References from an application to libraries in J2EE engine 6.30
Note 859444: How to deploy libraries on J2EE Engine6.40
Note 723562: SAP Java Connector: Configuration and Requirements
Portal Runtime Errors: JCO cannot load its RFC middleware layer
Exception: Exception in thread "main" java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC' default_cpc_mode at com.sap.mw.jco.JCO.<clinit>(JCO.java:309)
Exception: Exception in thread "main" java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC' JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [C:devcu rrjcosapjcorfc.dll]. Required version "2.1.5 (2005-02-15)". at com.sap.mw.jco.JCO.<clinit>(JCO.java:735)
Exception: Exception in thread "main" java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC' JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc. Found version "2.0.11 (2005-01-21)" but required version "2.1.5 (2005-02-15)". at com.sap.mw.jco.JCO.<clinit>(JCO.java:735)
Cause: These exceptions typically occur when different versions of sapjcorfc.dll and sapjco.jar have been installed. Anytime the JCo connector is upgraded to a new version, you need to ensure that all three libraries are updated (librfc32.dll, sapjcorfc.dll, and sapjco.jar). If any are left at the older version, one of the above exceptions is likely to occur.
Solution: Extract sapjcorfc.dll and sapjco.jar from the original JCo archive. Copy these files to the appropriate locations, overwriting the originally installed versions. Ensure that the PATH statement is updated to reflect the directory location of the DLL files and the Java CLASSPATH points to sapjco.jar.
Portal Runtime Error: JCo is unable to find the JCORFC library in the system path.
Exception: Exception in thread "main" java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC' com/sap/mw/jco/JCO$MetaData$Type1Data at com.sap.mw.jco.JCO.<clinit>(JCO.java:309)
Cause: This exception occurs when the directory containing sapjcorfc.dll cannot be found in the PATH environment variable. sapjcorfc.dll contains the middleware bridge between Java JCo and the C libraries that comprise SAP's RFCSDK. It must be made available to the JCo application through the system path.
Solution: Add the directory containing sapjcorfc.dll to the PATH statement i.e. PATH = %PATH%;C:jco. If this directory is not explicitly called out within the PATH statement, JCo will look for the file in the same directory that contains sapjco.jar. However, this method can lead to confusion if the Java application is to be deployed within a Java application server. In that case, the application server would either need to recognize the system PATH statement that includes the sapjcorfc.dll directory or be configured to read the library directly off the file system.
Portal Runtime Error: URL of a Web Dynpro Application
With URL http://host:port/irj not able to publish Web Dynpro iViews.
Solution: Fully Qualified Domain Name (FQDN) must be specified in the URL of Web Dynpro Application. The URL of a Web Dynpro application is automatically generated by the system. URL of application can be located in the Web Dynpro Explorer on the properties tab.
Structure of the URL of Web Dynpro Application :
Host is name of the application server. Domain comprises several hosts under a common name and can either be an individual host or network. Port can be removed if standard port 80 (HTTP) or 443 (HTTPS) is used. The namespace can be the standard namespace /SAP/ or customer namespaces. The application name is the name of the Web application as defined in the Web Dynpro explorer by the Web Dynpro component.
Write http:// <SERVER>.<DOMAIN>:<PORT>
Note 654982: URL requirements due to Internet Standards.
Note 805344: How URLs are generated automatically in BW
Note 773830: FQHN determination in ICM
Note 512337: Customizing SAP Web Application Server Protocol (HTTP/HTTPS)
Note 434918: Configuration for fully qualified host names for BSP
Note 492533: URLs are generated without domains
Note 677118: SP31 - Fully Qualified Domain Names Check
Note 654326: Domain restrictions in a portal environment
Note 608322: SLDAPICUST - Discrepancies with the host name, FQDN
For setting up FQDN check this blog:
Portal Runtime Error: RFC_ERROR_LOGON_FAILURE: System received an expired SSO ticket
Com.sap.mw.jco.JCO$Exception: (103) RFC_ERROR_LOGON_FAILURE: System received an expired SSO ticket
... 58 more[/code]
Caused By: The SSO ticket expired. By default expiry time is 8 hrs. Leaving a system more than the specified time, ticket will expire.
There was also a bug before NW04 SP14 on the Web Dynpro runtime on this in the earlier version of Web Dynpro. Reason for this is that the tickets are held cached. The expired SSO ticket can also be caused by a JCO connection pool not having been destroyed even after Web Dynpro application terminates. Same user starts another WD application using the same user id/authentication method/backened system combination. This is a bug that the portal does not correctly notify the WD framework that the WD application has closed. The older ticket is still held and returned showing an Expired ticket error. The fix was in the UME so that the appropriate notifications are sent to WD regarding the termination of the session. This bug is resolved from NW04 SP15 and onwards.
Solution: Go to System Administration - System Configuration - UM Configuration - Security Settings .......increase the value of the field "Lifetime of Sap Logon Ticket (hh:mm) Default entry is 8 hrs. Save changes and restart cluster.
It should be a value that is higher than the maximum working time of an employee increase the time for 24 hrs than 8 hrs.
If ticket is valid and using older than SP14 then need to upgrade to latest SP.
Note 1130191: JCO Pool Viewer Tool for SSO Expiration Problem
Note 842635: Session Management for Web Dynpro Application
Note 825149: SSO Ticket expired cannot create Client window, JS error
Note 849730: Importing a Web Dynpro patch for Support Package 11
Note 849851: Importing a Web Dynpro patch for Support Package 12
Note 868055: Importing a Web Dynpro patch for Support Package 13
Note 1013230: JCO Client not connected/system received expired SSO ticket
Note 1015179: SSO ticket expired or connection timeouts
Checklist for SSO:
Note 431977: Restart INQMY Server after configuration changes
Note 451739: NoClassDefFoundError: org/apache/struts/digester/Digester
Note 536121: java.lang.NoClassDeFoundError: com/sap/mw/jco/JCO$MetaData
Note 720554: NoClassDefFoundError:com/sap/tc/logging/LogController
Note 773401: Configuring Portal JDBC System connection properties
Note 913483: SAP NW Portal Connectivity - Central Note
Note 785029: Tool for testing connections from Portal to R/3 system
Note 737736: Tracing and Logging for SAP Connectors in NW04
Note 864823: Using a JDBC driver from a portal application