Posts tagged troubleshooting
Canonical name ‘vs’ User ID
0Issue:
Recently I worked on a customer issue where in they were seeing an error when the user logged into their AIR client on MAC and was unable to access the application.
The error seen was :
LC_AuthenticateUser Error: com.adobe.idp.um.api.UMException| [com.adobe.idp.um.api.impl.AuthenticationManagerImpl] errorCode:16386 errorCodeHEX:0×4002 message:user_identifier:Z027223 domain:DefaultDomcom.adobe.idp.common.errors.exception.IDPException| [com.adobe.idp.um.businesslogic.directoryservices.DirectoryServicesManagerBean] errorCode:13316 errorCodeHEX:0×3404 message:user_identifier: Z027223 domain:DefaultDom;
---
Read the complete post at Adobe LiveCycle Blog.
LiveCycle Output ES2: “Failure to automatically determine column ’5′ width”
0Issue
If you are using LiveCycle Output to generate PDF documents using XDP files as input, you may encounter the following exception and no PDF will be returned:
0000012a XMLFormAgentW E com.adobe.livecycle.formsservice.logging.FormsLogger logMessage ALC-OUT-002-017: mid,tid: 29435,23593162.1 sev: f text: Failure to automatically determine column '8' width. 0000012a FormServerExc E com.adobe.livecycle.formsservice.logging.FormsLogger logMessage ALC-OUT-002-013: XMLFormFactory, PAexecute failure: "(com.adobe.document.xmlform.ReturnStatus@39133913) Failure to automatically determine column '5' width."
If you load the same XDP file in Designer ES2 and goto PDF Preview, you may notice the same message as a warning in the log, but the PDF will be correctly rendered and displayed:
Failure to automatically determine column '5' width
——-
Read the full article at http://blogs.adobe.com/dmcmahon/2012/02/04/livecycle-output-es2-failure-to-automatically-determine-column-5-width/.
LiveCycle ES2: UnsupportedClassVersionError: (oracle/jdbc/OracleDriver) bad major version at offset=6
0Issue
If you are attempting to configure Adobe LiveCycle server using the LiveCycle Configuration Manager (LCM) with an Oracle database, you may encounter the following exception during the DB configuration step:
Caused by: java.lang.UnsupportedClassVersionError: (oracle/jdbc/OracleDriver) bad major version at offset=6 at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:258) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151) at java.net.URLClassLoader.defineClass(URLClassLoader.java:589) at java.net.URLClassLoader.access$400(URLClassLoader.java:123) at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1034) at java.security.AccessController.doPrivileged(AccessController.java:279) at java.net.URLClassLoader.findClass(URLClassLoader.java:491) at java.lang.ClassLoader.loadClass(ClassLoader.java:631) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:597) at java.lang.Class.forNameImpl(Native Method) at java.lang.Class.forName(Class.java:130) at com.adobe.livecycle.cdv.validator.DBValidator.validateDB(DBValidator.java:174)
Reason
This error can occur if you are not using the correct Oracle DB driver, or the correct Java JDK for your platform.
Solution
You should check the Oracle DB driver and JDK version required in the relevant platform matrix. With LiveCycle ES2 for example the platform matrix is located here:
http://help.adobe.com/en_US/LiveCycle/9.5/supported_platforms.html
So if you were to install LiveCycle ES2 on AIX 5.3 with WebSphere 7, you should be using the 64-bit JDK 1.6 SR7 provided by WebSphere (WAS_HOME/AppServer/java), and the ojdbc6.jar Oracle driver.
Be sure to set the JAVA_HOME and PATH environment variables as instructed in http://help.adobe.com/en_US/livecycle/9.0/prepareinstallsingle.pdf
——-
Original article at http://blogs.adobe.com/dmcmahon/2012/01/21/livecycle-es2-unsupportedclassversionerror-oraclejdbcoracledriver-bad-major-version-at-offset6/.
LiveCycle ES: how to uninstall a patch or service pack
0- David McMahon
Issue
If you have installed a patch or service pack for LiveCycle ES you may need to uninstall this at a later date, or you may have a requirement to document this process fully as part of your installation/configuration documentation.
This information is outlined in the readme file provided with each patch or service pack, and I will just expand on that giving some more detail here. In this example I will discuss uninstalling LiveCycle ES Update 1 SP4 (8.2.1.4), to go back to LiveCycle ES Update 1 SP3 (8.2.1.3) on Windows.
Preparation
Before installing/uninstalling any patch you should take note of the current versions installed so you can verify your steps have been successful later. Take a screenshot of the About screen, and the Service Management screen from the AdminUI.
AdminUI > About screen (note the Patch version “SP4″ and Service Pack version “8.1.5192.1.284202.47″, and the Patch level of each deployed component “SP4″):
AdminUI > Services > Applications and Services > Service Management screen (note the Component Versions “8.1.5192.1.284202.47″, “8.1.5193.1.279333.70″, etc…):
Before running through the uninstallation process it would advisable to make a backup of your existing configuration in case any unexpected problems should arise. To do this, you should make a copy of the entire LiveCycle installation directory (excluding the MySQL folder if it exists within the LiveCycle directory).
You should also take note of the following configuration properties from AdminUI > Settings > Core System Settings > Configurations:
- Location of temp directory
- Global document storage root directory (Changing this value will result in data loss unless you also manually move the data)
- Location of the Adobe Server Fonts directory
- Location of the System Fonts directory
If you have LiveCycle Content Services ES installed, you should also have the location of the Content Services root directory which you entered during the original installation/configuration process.
——-
Read the full blog post at http://blogs.adobe.com/dmcmahon/2011/12/20/livecycle-es-how-to-uninstall-a-patch-or-service-pack/.
Converting DOC(X) in LiveCycle PDF Generator yeilds error: ALC-PDG-019-060-Encountered error while importing the XMP file.
0- Tai
When PDFG ES2 converts Word documents, it extracts the metadata and compiles it as an XMP for the PDF.
There is a known problem however, when a file contains custom metadata: PDFG cannot compile the XMP properly for such files.
To check the metadata in the DOC, open Word.
Use the MS Office menu (the big round one, top left) : Prepare : Properties
A small yellow info bar will appear above the editing area.
In that area, Click “DIP Properties – …” and select “Advanced properties …”
Go to the “Custom” tab
If there are items in the space at the bottom labelled “Properties”, then your DOCX is likely to fail to convert.
There are two solutions to this:
A) Workaround.
1/ Log on to the LiveCycle Admin UI
2/ Go to Services : PDF generator : File type Settings : [your file type settings]
3/ Open Word file type settings
4/ Uncheck “Convert document info”
5/ Save
This will prevent PDFG from trying to extract and convert the Word metadata – thus excluding the problematic custom information
2) Obtain the patch
If you have an Adobe Platinum support agreement, you can contact technical support and request the patch.
——-
Original article at http://blogs.adobe.com/an_tai/archives/64.
How to Avoid Missing xfasubset.js Error in ADEP Forms
0If you try to render an XFA form as HTML, chances are that you will encounter the following error: ERROR [com.adobe.livecycle.formsservice.exception.FormServerException] (http-0.0.0.0-8080-97) ALC-FRM-001-006: URI not found: /scripts/xfasubset.js Cause: scriptsxfasubset.js (The system cannot find the path specified) xfasubset.js is a BLOB … Continue reading →
——-
Original article at http://blogs.adobe.com/ADEP/2011/09/how-to-avoid-missing-xfasubset-js-error-in-adep-forms.html.
Java exceptions and Flex
0I’ve seen some articles on this subject but I have not found one dealing with all cases (webservices, BlazeDS, BlazeDS and Spring, data management). Also the approach for BlazeDS is different than the one used with Spring/BlazeDS integration, and this thing can be a little bit confusing for a beginner.
Let’s assume that you have a layer of services that should be invoked from your Flex application. You can expose these services as web services or as remote methods. Or you can use data management. The Java methods may throw errors and you want to display them in the Flex application.
For simplicity I will use a very short method as an example. The method signature is :
public String returnResults() throws DatabaseDownException;
There are four main use cases:
a)You have to write a webservice to return the result as XML. For example:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<result>
</result>
</data>
In this case you will need to enhance your XML to add a structure for keeping error messages – like this:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<result>
</result>
<error>
</error>
</data>
When building the XML the <error> body is going to envelope the exception message. Of course more information can be added, including exception type, severity, and so on. The same approach should be used also when working with SOAP services
b)You plan to use BlazeDS and Java remoting
In this case things are going to be easier, because BlazeDS is able to automatically serialize the thrown exception and you can find the serialized exception in the FaultEvent object. Assume that you have the Java exception declared below. It extends the RuntimeException and it has a getter method for a custom field.
public class DatabaseDownException extends RuntimeException{
private String customField;
public String getCustomField(){
return customField;
}
}
The Flex code declares a remote object and registers a handler (which is also included) for failure.
<mx:RemoteObject id="test" destination="testDestination" result="resultHandler(event)" fault="faultHandler(event)"/>
private function faultHandler(event:FaultEvent):void{
var exception:Object = event.fault.rootCause;
Alert.show(exception.cause);
Alert.show(exception.localizedMessage);
Alert.show(exception.message);
Alert.show(exception.customField);
}
There are four fields in the serialized exception. The first three are inherited from the Throwable object, the last one is declared in your exception. It is interesting to note that you need not have a pair of set/get function in order to have your property serialized. The Throwable object is the only object in which it is enough to have get methods in order to serialize the values (you can take a look at flex.messaging.io.ThrowableProxy to check that).
The only drawback is that you are working with untyped objects..if you don’t like that you can throw instead instances of flex.messaging.MessageException. This Java class is part of the BlazeDS and it will be deserialized using the class mx.messaging.messages.ErrorMessage (obtained from the event.message property).
You can add your custom data in the MessageException class using the extended property. For example:
MessageException messageException = new MessageException();
HashMap<String,String> map = new HashMap<String,String>();
map.put("clientName", "JOHN");
map.put("clientSurname", "MASTER");
messageException.setExtendedData(map);
messageException.setCode("ACCOUNT_DISABLED");
throw messageException;
And on the Flex side:
private function faultHandler(event:FaultEvent):void{
var errorMessage:ErrorMessage = event.message as ErrorMessage;
trace(errorMessage.extendedData.clientName);
trace(errorMessage.extendedData.clientSurname);
trace(errorMessage.faultCode);
}
You probably do not want to have an explicit dependence between your service layer and the BlazeDS libraries, so in this case you should build a delegate on top of it, which will also act as an exception translator.
c)Using Spring BlazeDS Integration
You have several benefits when using Spring BlazeDS integration, and if your middle tier is already using Spring it’s a must. The benefit related to exception handling is the exception translator mechanism. This translator will catch all the exceptions thrown from the services invoked from Flex and you can translate them into something more meaningful for the client.
First you need to declare the exception translator:
<bean id="exceptionTranslator" class="com.test.exception.ExceptionTranslatorImpl" />
<flex:message-broker services-config-path="/WEB-INF/flex/services-config.xml">
........
<flex:exception-translator ref="exceptionTranslator" />
</flex:message-broker>
The exception translator is below:
public class ExceptionTranslatorImpl implements ExceptionTranslator{
//handles all
public boolean handles(final Class<?> clazz){
return true;
}
public MessageException translate(final Throwable throwable){
if (throwable instanceof DatabaseDownException){
MessageException exception = new MessageException();
exception.setCode("FATAL_DB_DOWN");
return exception;
}
if ...........//check another things
}
}
Note that in the current version of Spring/BlazeDS integration it is mandatory to have an exception translator, otherwise the original error is going to be swallowed and you will receive some generic error.
d)Using data management
The same approach from point c) applies here. Basically your assembler – which is going to invoke some service to obtain/create data – will take care of translating the exceptions into something meaningful for the client. I wrote some time ago a short post about that here.
Note: this article was translated also in Belorussian (thanks Patricia), you can find it here.
—-
Original article at http://cornelcreanga.com/2010/05/java-exceptions-and-flex/.






