Atg dyn exception - atg

I face the below error while trying to run http://localhost:7103/dyn/admin/
atg 10.1.2 on windows 7 dyn/admin
The detailed exception is: java.io.IOException:
Cannot run program "javac": CreateProcess error=87,
The parameter is incorrect
this appear because windows has limitation on command parameter lenght
please advice how to solve this issue.

According to the ATG Support site:
Oracle Commerce ATG will convert JHTML pages into Java servlets and
then compile them into class files using the javac Java compiler. By
default, the javac executable is invoked to perform the page
compilation.
These errors point to a low level problem invoking the javac compiler. error=87 is mainly a problem on WebLogic 12 which has many different libraries in deeply nested directories.
The solution (which works for me on ATG11.1 and Weblogic 12.1.3) is
Edit or create the files
<ATG_Home>/localconfig/atg/dynamo/servlet/pagecompile/PageProcessor.properties
<ATG_Home>/localconfig/atg/dynamo/servlet/pagecompile/ExtendedJhtmlPageProcessor.properties
(I prefer to create them in an <ATG_Data>/servers/<servername>/localconfig/... folder but not sure of your setup)
Add these lines to the created above.
# Use java's internal compiler - only use this when using Oracle's JVM.
javaCompilerClassName=atg.servlet.pagecompile.SunJavaSourceCompiler

Related

SAP NWDS 7.5 on other OS than Windows 10

SAP NWDS (Netweaver Developer Studio) is only supported on Windows 10 and only on a SAP jvm -- see also SAP Note 2546316
as NWDS is actually eclipse neon with some additional SAP plugins, I wondered why.
My requirement is to run it on a Windows Server 2008 R2, and soon I may need to run NWDS on a recent Mac Book Pro.
Current Behaviour
If I run it on a Windows 10 laptop, everything is fine.
If I run it on WinServer, the thing runs like if it is a plain eclipse (not loading any SAP Plugins)
Apparently the NWDS is checking somewhere for the OS flavor and the JVM manufacturer.
What I achieved so far
I run it on a SAP jvm using -vm Parameter in eclipse.ini
I added -Dos.name=Windows 10 and -Dos.version=10.0 params, and some of the SAP plugins loaded -- but not all!
In the JCo plugin folder, I tried replacing the binary files (DLL and one other file) by corresponding OS versions I got from the SAP market place)
Questions
Well, how to get NWDS 7.5 to run on Win Server (and later, on a Mac)
Partial achievment would be to get ecpipse to spit out more infos on WHY/WHICH plugins didn't get loaded --- found no information (maybe I'm too dumb for that)
UPDATE 20.08.2018
Answering question 2: Eclipse Runtime Options => options eclipse.log.*
and found the logs in the configuration subfolder of installation folder.
=> error is definitely not being able to load the native part of the JCo Plugin
org.osgi.framework.BundleException: Could not resolve module: com.sap.jco3 [463]
Unresolved requirement: Require-Capability: osgi.native; native.paths:List<String>="sapjco3.dll"; filter:="(&(osgi.native.osname~=win32)(osgi.native.processor~=x86_64))"
Well,
the answer (at least in resp. to Win Server 2008 R2) is
run on a SAP jvm (Download) using -vm parameter in your eclipse.ini
very important: use the -clean option in your eclipse.ini after switching to SAP jvm, as this will rebuild the plugin list.
The answer to the partial (logging) question is already in an update in the original question, but nevertheless:
Eclipse Runtime Options => Use options eclipse.log.*
and find the logs in the configuration subfolder of installation folder.

How to set up Matlab MCR for Ubuntu and Netbeans (UnsatisfiedLinkedError)

I am deploying a Java EE project in a server that uses the MCR of Matlab for some image processing functions. I've been trying this for months I can't make it work. The problem is when it is going to uses the MCR it cannot find the .so libraries. I got this error:
javax.servlet.ServletException: Failed to find the library libmwmclmcrrt.so.7.13, required by MATLAB builder JA, on java.library.path. This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or r the current path configuration. The MCR version that this component is trying to use is 7.13.
ROOT CAUSE:
java.lang.UnsatisfiedLinkError: Failed to find the library libmwmclmcrrt.so.7.13, required by MATLAB Builder JA, on java.library.path. This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or the current path configuration. The MCR version that this component is trying to use is: 7.13.
The servers uses:
Ubutuntu 64 bits.
Netbeans 7.4
Glassfish
java 6 sdk
first it uses MCR 7.13 now it uses MCR 8.1
Things I've already tried:
Setting the environment variables LD_LIBRARY_PATH and XAPPLERSDIR with export:
export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/server:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64:$LD_LIBRARY_PATH
export XAPPLRESDIR=/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/X11/app-defaults
Setting the environment variables LD_LIBRARY_PATH and XAPPLERSDIR with setenv:
Command setenv not found
Edit ld.so.conf file and run ldconfig
Add -Djava.library.path=my/path/to/so in glassfish
Add -Djava.library.path=my/path/to/so in Netbeans like says here:
giving 'java.library.path' in netbeans for .dll/.so files
I tried to set environment variables in Netbeans like said in this post: How to set Environment Variable in Netbeans?
But I can't find "Actions"
I tried to set environment variables in Netbeans like said in this post: https://askubuntu.com/questions/267071/ld-library-path-specification
But I can't find "Environment"
I've tried lots of more things that I can't remember and none of them works, it keeps showing the same error (now for version 8.1 instead of 7.13). Please I would I appreciate any help.
I had the same problem working with Linux, Java EE and Matlab. My solution was:
Open a terminal
Log as root $ su and type password
Edit the /etc/enviroment $ gedit /etc/enviroment
Add the needed variables, in our case:
LD_LIBRARY_PATH="/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/bin/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64/server:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/sys/java/jre/glnxa64/jre/lib/amd64"
XAPPLRESDIR="/usr/local/MATLAB/MATLAB_Compiler_Runtime/v81/X11/app-defaults"
Save the file and reboot.
Start the server as root.
What happened with your other solutions, like the export, was that there was no visibility between the variables that you created and the GlassFish server. Setting variables in the environment will asure you that they are visible from any other program/process.

Could not access the MCR component cache

I want to use CGI and Apache web server to give users access to run my compiled Matlab application (an exe file). I followed the instructions at this guide.
But, I received an error in the web server logs as:
[error] [client 127.0.0.1] Could not access the MCR component cache., referer: .../standalone.html
I am using Matlab 2012a. Is there anyway to control the MCR cache for applications compiled using Matlab 2012a? There is no more CTF file with the compilations of this Matlab release.
Thanks.
I believe that in recent versions of MATLAB Compiler the CTF archive is embedded in the .exe by default, but that you can change that back, either by selecting an option from within the deploytool settings, or by using the -C parameter with mcc.
The CTF archive would normally expand automatically the first time you run the component, but if you need to manually expand it (I believe there are reasons you need to when calling it from CGI, although I've never done it myself) there's a utility called extractCTF.exe in matlabroot\toolbox\compiler\arch, where arch is your OS type, such as win32 etc.
See here and here for more information.
Hope that helps!

Java compile on Ubuntu with openjdk, then run on windows with sun java gives error

I have been developing a Java program in Netbeans/Ubuntu 12.04 using OpenJdk. I have got this program to run successfully using the .jar in Linux, but when I copy the .jar to my Windows 7 virtual machine I get the following error;
"Could not find the main class: testprogram.Main. Program will exit."
Also this program uses no external libraries.
How did you start your program? Did you use java -jar yourjarfile.jar?
Maybe your Manifest file does not defined applycation entry point. You can study this topic here.
My fix to this problem was to use JDK 6 as opposed to JDK 7, still unsure as to why this error was produced, but this change has fixed the problem.

Java/CVM - Boot Class Path

I am developing an java application that uses a DB for an embedded device (using CDC Foundation 1.1 and jsr 169). the jsr169 jar file should be loaded by the boot strap loader (and not using the traditional -classpath option)
In order to run the application, I am using the following command
cvm -Xbootclasspath/a:/mylibs/jsr169.jar -cp $CLASSPATH -jar myapp.jar
But I read somewhere that the option -Xbootclasspath is not standard, is it dangerous to use it? if yes, where can i put my jsr169.jar so it can loaded directly by the boot class loader?
thanks a million guys
Elie
-Xbootclasspath isn't a standard java option, so JVMs by different vendors may not support it.
Another danger lies in the fact that it can be used to override standard classes from JRE - if your application depends on such overriden classes, you may have problems with running on different JVMs or even newer versions of the same JVM.
According to Java SE documentation, overriding standard classes breaks Java license: according to Oracle documentation,
"Applications that use this option for the purpose of overriding a class in rt.jar should not be deployed as doing so would contravene the Java 2 Runtime Environment binary code license.". I don't see such warning in documentation for CVM, though.
As CDC does not include JDBC classes, I guess you're safe.