With the release of Firefox 19, Mozilla introduced a built-in PDF viewer. However, the XFA-based PDF forms do not open in the PDF viewer, by default. To open these forms using Firefox 19, you’d need to configure Firefox to open PDFs in Adobe Reader or Adobe Acrobat.
For more details on how to accomplish this, see the knowledge base article at http://helpx.adobe.com/livecycle/kb/xfa-forms-mozilla-firefox-19.html.
- Ankush Kumar, Lead Software Engineer @ Adobe
Many a times, we have the requirement to deploy single or group of system or custom DSCs. System DSCs are deployed by LiveCycle Configuration Manager. However, in the case of custom DSCs, we need to manually deploy the component through LiveCycle Workbench. Sometimes, launching Workbench for solely deploying component seems like too much effort. Moreover, it’s not very easy to automate.
You can use the attached sample tool to deploy a DSC using command-line.
- Download and extract the tool archive on your machine. It contains a folder libs, a runme.bat file, and an ImportDSC.jar file.
- Place <LiveCycle Installation Dir>\sdk\client-libs\thirdparty\*.jar files in libs folder.
- Place adobe-usermanager-client.jar and adobe-livecycle-client.jar files in libs folder.
- Modify runme.bat accordingly.
The ImportDSC.jar is used in the following way in the runme.bat file (provided classpath is set):
java com.adobe.livecycle.sample.ImportDSC appserver=<websphere|weblogic|jboss> serverhost=<name of machine> port=<port of LC> username=<user to install DSC> password=<password of mentioned user> dscpath=<absolute path till DSC> force=<true|false>
The source code is also included in the archive. Please review it in case of any doubt and modify as per your requirements.
DISCLAIMER: This sample code is not officially delivered or supported as part of Adobe LiveCycle product. One should verify this on a testing environment before employing in production environment.
- Siddharth Jain, Quality Engineering Manager @ Adobe
Adobe LiveCycle deployment involves many third-party software like Application Servers, Databases and Operating Systems. LiveCycle team certifies certain platform combinations for each release of LiveCycle. For example, the supported platform combinations for our latest LiveCycle ES3 SP1 offering can be looked at http://help.adobe.com/en_US/livecycle/10.0/supported_platforms.html. It provides details of third-party software along with the version details on which LiveCycle is certified and supported. Given that these third party software keep coming up with their latest offerings too, LiveCycle has a third party software patch support statement available at http://helpx.adobe.com/livecycle/kb/livecycle-third-party-software-patch.html.
Together, these two documents should help you figure out whether platform of your choice is supported by LiveCycle or not. In case, you need any clarification, contact Adobe Enterprise Support for guidance.
If you find that platform of your choice is not supported by LiveCycle, for example, you wish support for version X of a database vendor due to your project considerations while LiveCycle supports version Y, you should contact Adobe Enterprise Support who can guide you on next steps.
In addition, Adobe LiveCycle team has a process known as Customer Commit Request in which such a request can be routed to engineering for evaluation if the customer has committed to using LiveCycle by means of purchase or M&S. If engineering finds that there is feasibility to support such a platform for your identified use, it carries out testing on that platform for your use case on LiveCycle version you intend to use. If all goes well, LiveCycle team reverts back in positive and provides support to you for your specific requirement on your desired platform for that LiveCycle release.
- Ankush Kumar, Lead Software Engineer @ Adobe
- Go to Websphere console -> Servers -> Application servers -> server1 -> Process Definition -> Java Virtual Machine.
- Enable the checkbox against Debug Mode.
- Fill in the following as debug arguments in the text box:
Djava.compiler=NONE -Xdebug -Xnoagent
- Go to Home >Summary of Servers >DocServer Server Start tab.
- Edit arguments and add:
- For JRockit R28 and above -XX:
- For others:
Add following in run.conf (for Non-Windows) and run.conf.bat/run.bat (for Windows):
- Non-Windows: JAVA_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n $JAVA_OPTS
- Windows: set JAVA_OPTS=”-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n %JAVA_OPTS%”
Taking Thread Dump
If the server is started through a console/command line and not as a service, press a ctrl+z. The thread dump would be logged in the console window/console logs.
If the server is running as a service, do the following:
You can use a utility SendSignal. Follow the docs at this URL.
Identify the process id and then fire command
kill -3 <pid>
Got to <jboss_home>\bin and execute following command:
twiddle.bat invoke “jboss.system:type=ServerInfo” listThreadDump > threaddump.html
For Weblogic 10 R3 you can use following way. Go to Weblogic Console -> Environment -> Servers On left side. Then select <your server> -> Monitoring tab -> Threads -> Dump Thread Stacks.
It will display the thread info.
- Login to the machine where the WebSphere server is running.
- Open a command prompt and change directory to /WebSphere/AppServer/bin.
- Type wsadmin (will take a minute to connect – if authentication is enabled, it will prompt).
- Enter set jvm [$AdminControl completeObjectName,process=server1,*].
- Replace server1 with the actual server you want to take a thread dump from (has to be local to this machine).
- Enter $AdminControl invoke $jvm dumpThreads.
The thread dump is created in the profile folder for the server you created a dump for. There should be a “javacore.someText.txt” file created. If it’s a cluster, you’ll have to repeat the above steps for each server.
Using JConsole. Connect the JConsole present in IBM JDK and trigger threaddump using that. You would have to follow the steps mentioned here for it to get to work.
Capturing SQL Logs
The SQL queries by UM can be logged using the default logging system for that system. Following two categories should be used:
- com.adobe.idp.storeprovider.jdbc – Logs all the queries fired with the value populated.
- storeprovider.stacktrace – This would also log the stacktrace of the thread which fired the query.
The logging level should be set to TRACE or the lowest for the queries to be logged. For the POF layer use the category com.adobe.pof.adapter for seeing the queries getting fired.
- Mayank Gupta, Computer Scientist @ Adobe
Steps to add a custom service in Correspondence Management solution are as follows:
- The implementation for this user story involves code changes and rebuilt. So, one is required to setup the development environment via steps mentioned @ Setting up development environment.
- Add your sample custom service interface and implementation class in the CorrespondenceManagementSolutionTemplate/Services project for example @ com.adobe.icc package in the source code. See the sample @ http://blogs.adobe.com/LiveCycleHelp/files/2012/06/SampleCustomService1.zip.
- Now define your service as a spring bean. For this, add the following entry in your CorrespondenceManagementSolutionTemplate\Services\resources\META-INF\spring\cm\adobe-cm-spring-config.xml file:
<bean id=”sampleCustomService” class=”com.adobe.icc.SampleCustomServiceImpl” />
- Now expose your spring bean as a osgi-service. For this, add the following entry in your CorrespondenceManagementSolutionTemplate\Services\resources\META-INF\spring\osgi-context.xml file:
<bp:service interface=”com.adobe.icc.SampleCustomService” ref=”sampleCustomService” >
<bp:service-properties><entry key=”connectors.httpinvoker” value=”true” />
<entry key=”connectors.httpinvoker.alias” value=”/sampleCustomService” />
<entry key=”connectors.remoting” value=”true” />
<entry key=”connectors.remoting.id” value=”sampleCustomService” />
- Rebuild and redeploy the Solution template to view the changes. For information on rebuilding and redeploying, see Building and deploying the Solution Template.
- Saurabh Kumar Singh, Computer Scientist at Adobe
Following are a few tips and workarounds for LiveCycle PDFG. Please note that the workaround marked as unsupported are not officially supported by Adobe.
- [Unsupported] On UNIX servers customers can use 64-bit OpenOffice to do OpenOffice based conversions. The obvious benefit from this is the performance improvement we get. To achieve this just point JAVA_HOME_32 to 64 bit version of Java. Same can achieved on widows too but you may observe immediate conversion failures for other native file formats.
- [Unsupported] Any file which can be opened by Acrobat (like a text file) can be converted to PDF using LiveCycle PDF Generator. You just need to add the comma separated file extension (for example txt for text files) in XPS to PDF file-type setting.
- A user/administrator can directly jump to PDF Generator UI by hitting http(s)://<server-name>:<port>/pdfgui. This way a user can skip couple of clicks on UI to land on PDF Generator user interface.
Watch this space, for a lot more upcoming tips and tricks.