domino version 9.0.1
designer version 9.0.1
(I changed the text of the stack trace slightly to take the customer out of the picture.)
Every once in a while in a developmental environment, I have been getting the following stacktrace in the server log:
> 7.01.2014 17:01:13 HTTP JVM: com.ibm.designer.domino.napi.NotesAPIException: File access error:
> Error while getting information on item $FileData
> 17.01.2014 17:01:13 HTTP JVM: Note item not found. For more detailed information, please consult error-log-0.xml located in
> c:/Domino/data/domino/workspace/logs
> 17.01.2014 17:01:13 HTTP JVM: Managedbean DatabaseController could not be created Can't instantiate class:
> 'de.holistic.cust.epr.EprDatabaseController'..
> java.lang.ClassNotFoundException: class
> java.lang.ClassNotFoundException:
> de.holistic.cust.epr.EprDatabaseController. For more de
> 17.01.2014 17:01:13 HTTP JVM: ailed information, please consult error-log-0.xml located in c:/Domino/data/domino/workspace/logs
> 17.01.2014 17:01:13 HTTP JVM: com.ibm.xsp.webapp.FacesServlet$ExtendedServletException:
> com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing
> JavaScript computed expression
the following from the xml log file does not show any of the promised extra information
com.ibm.designer.domino.napi.NotesAPIException: File access error: Error while getting information on item $FileData Note item not found
This exception is also sometimes coupled with a SecurityException.
1. Resigning the database does not do anything
2. changing the classes and xpages and resaving sometimes fixed the issue once, or it was just the time it took me to try that
3. restarting the HTTP task / server never makes a differance
4. cleaning and building does not do a thing.
After google searching for the issue, some people have had this issue while storing their java classes in the java area of the "normal designer" perspective. I have my java code in a custom source folder "WebContent/WEB-INF/src".
Is anyone else having/had this issue? If so, how can it be best resolved? Is this a bug in the XPage implementation? I have not had this issue with java classes in a jar file, only when the source code needs to be compiled. Although it is a possibility to deliver the application with jar files instead of raw classes, it is impractical in a developmental setting. Any help would be greatly appreciated.
The compiled java class is stored in the $FileData item of the design note in which the java source is saved. So the error means the compiled code is lost and not generated by the server. Below are something that I think might help to debug this issue.
Open the project view in designer, modify the filter to show the java classes to check if they are available.
Check if the java source folder is on the build path.
Check the auto-rebuild option.
If the development is on local and deployed to the server via design refresh or replace. Check if the classes are lost in this process.
Related
I'm having an issue with Oracle 11g R2 Design Center feature. When I click it, it gives me the error below:
C:\app[username]\product\11.2.0\dbhome_1\owb\bin\win32>call setowbenv.bat
WARNING: Unknown directive: SetSkipJ2SDKCheck
WARNING: Could not find jvm.cfg! in 'C:\app[username]\product\11.2.0\dbhome_1\jdk\jre\lib\jvm.cfg'
WARNING: Cannot find default VM "client" at C:\app[username]\product\11.2.0\dbhome_1\jdk
ERROR: Cannot find VM at: C:\app[username]\product\11.2.0\dbhome_1\jdk
Aborting!
I've tried many things to resolve this, as listed below:
Download 32b version of JDK (actually, I've downloaded multiple to rule out the version issue, both 32 and 64)
Point environment variable and path to JDK installation
Change sqldeveloper.cfg file to include SetJavaHome {path to JDK}
Move the jvm.cfg file to the directory it's expected to be at
Checked the paths to ensure the expected files were there
With step 4, after doing so I receive a different error message:
"Client VM is unsupported"
With step 5, after doing so I realized the path to the executable was not in:
C:\app[username]\product\11.2.0\dbhome_1\jdk
But instead in:
C:\app[username]\product\11.2.0\dbhome_1\jdk\bin
So, from all of this I feel that if I can change the path the Oracle Design Center is using to the correct path, then this should resolve. Problem is, I'm unsure where to find this. Also, if it helps I believe the Design Center uses JDeveloper, since the error suggests to view the Oracle 9i JDeveloper Install Guide at jdev\install.html. I tried going to this link but I'm not sure if it exists anymore because it took me to Google. I chose the most relevant link but still, I did not find any information regarding this issue. If anyone can help I'd be very thankful, this has been running me in circles for 3 days now.
TIA
I have been trying to use a home grown test tool and after doing an update to Centos 6.4, I am no longer able to run the tcl based tool. I am getting the following error and I have no internet access on this server. Kindly advise how do I solve this problem?
Thanks
"XpUtils::iload -d /usr/local/testtool/repo/package/linux-glibc2.3-x86_64/lib/tcljava1.4.1 tclblend" failed:
couldn't load file "/usr/local/testtool/repo/package/linux-glibc2.3-x86_64/lib/tcljava1.4.1/libtclblend.so": libjava.so: cannot open shared object file: No such file or directory
while executing
"error "\"XpUtils::iload -d $dir tclblend\" failed:\n $errMsg""
(procedure "loadtclblend" line 168)
invoked from within
"loadtclblend /usr/local/testtool/repo/package/linux-glibc2.3-x86_64/lib/tcljava1.4.1"
("package ifneeded java 1.4.1" script)
invoked from within
"package require java"
("eval" body line 1)
invoked from within
"eval package require $pkg"
("foreach" body line 2)
invoked from within
"foreach pkg $pkgList {
set ::${pkg}Version [eval package require $pkg]
}"
(file "/usr/local/testtool/testtool" line 165)
If you read the error message trace, you'll see that it says that this is all caused by:
libjava.so: cannot open shared object file: No such file or directory
The first steps would then be to ensure that you've got a version of Java actually installed, to check that it includes the file libjava.so, and that the file has been indexed by the system shared library catalog.
It might also be worth checking that all its dependencies are also present and that you've got the architecture for the Tcl library and the Java library matched (e.g., both 32-bit) as those can cause odd failures when they go wrong.
We have coded and run a dynamic web application using MAPSERVER(Version 6.0.1) on windows platform using Java Technology. Now, there is need of deploying it on Ubuntu 11.10. We have installed Apache Tomcat 6.0, Mapserver 6.0.1, Apache 2.0, and FWTools-2.0.1(As this package contain all required tools for mapserver if I am not wrong, so I didn't feel any other tools to be installed). We have deployed the war file(and put application without) in Apache Tomcat 's Webapps folder. I even got the index page which dont have code related with mapscript api. But while fetching the other servlet with mapscript we are getting following error...
java.lang.UnsatisfiedLinkError: no mapscript in java.library.path
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
java.lang.Runtime.loadLibrary0(Runtime.java:840)
java.lang.System.loadLibrary(System.java:1047)
edu.umn.gis.mapscript.mapscriptJNI.<clinit>(mapscriptJNI.java:23)
edu.umn.gis.mapscript.mapObj.<init>(mapObj.java:283)
Again while refreshing the browser page where the above error was displayed, I got a change,
java.lang.NoClassDefFoundError: Could not initialize class
edu.umn.gis.mapscript.mapscriptJNI
edu.umn.gis.mapscript.mapObj.<init>(mapObj.java:283)
I searched on net about the above problem. But finally blank. Please, provide idea about the above problem.
I'm not going to explain why you're getting the UnsatisfiedLinkError, but instead I'll explain why you are getting the NoClassDefFoundError when you reload the page.
A NoClassDefFoundError with a message Could not initialize class ... is thrown by the JVM when it attempts to initialize a class that it has already tried and failed to initialize.
The first of your two stacktraces contains the line
edu.umn.gis.mapscript.mapscriptJNI.<clinit>(mapscriptJNI.java:23)
The method name <clinit> denotes the static initializer, of the class mapscriptJNI. So, at the point that the UnsatisfiedLinkError was thrown, the JVM was trying to initialize this class. Looking at the error message, it seems that this static initializer tried to load the native code library mapscript but failed.
This UnsatisfiedLinkError causes the mapscriptJNI class to fail to initialize successfully. The JVM keeps a record of all classes that fail to initialize, and if you attempt to initialize one of those classes again, you'll get a NoClassDefFoundError with a message saying that it could not initialize that class.
When you refresh the page, you end up causing the JVM to attempt to initialize the class mapscriptJNI a second time. Of course, this class failed to initialize the previous time. Your second stacktrace contains exactly the error I've described.
In short, the UnsatisfiedLinkError is the real error here. Fix that and the other one will go away.
I would check the following 2 items:
Is the mapscript.jar file on Tomcat or at least your webapp's classpath? (NoClassDefFoundError is your big clue here)
Is the libmapscript.so on either your LD_LIBRARY_PATH or -Djava.library.path? (UnsatisfiedLinkError since the shared object cannot be found)
Try having a look at this post, near the Running Java Mapscript (on Linux) section.
Hope that helps!
I am having trouble setting up the Php-Java Bridge setup properly.
I will explain what I have done.
My site is in pure php
For our payment transaction process we need to set up a php-java bridge
I followed this link to setup the bridge PHP-JAVA BRIDGE INSTALATION.
Here I learned that I need to have a private jvm to install the bridge.
So 1st i installed apache-tomcat-6.0.14 in Private JVM using my c-panel. After instalation it asked me to Map a domain to private JVM. So I mapped my domain example.com (which is the only option available) to it.
Then it asked to enable a traffic redirection from Apache web server to my Java application server (there was a check box and i clicked it)
Finally it asked me to deploy the WAR File (JavaBridge.WAR was my file) and everthing seems fine
Now when i go to http://example.com/JavaBridge/ I could see the javabridge examples and it works fine.
SO FAR SO GOOD
Now my problem starts here when I try to access a java class file from php. A sample test.php is what I create and put the following code into it.
<?php
require_once("http://example.com:portnumber/JavaBridge/java/Java.inc");
$System = java("java.lang.System");
echo $System->getProperties(); //This Part echo's correctly and shows the data so it means i can access Java.inc Correctly
$path_e24class = getcwd(). '/e24PaymentPipe.class'; //This part fails both test.php and java class file e24PaymentPipe.class are in the same directory in publich_html folder
java_require($path_e24class);
$pipe = new Java("e24PaymentPipe");
$pipe->setAction("1");
?>
My site contents reside in the public_html folder and the WAR file are deployed in private jvm.
These are the error message am getting.
1) Warning: java_require() not supported anymore. Please use tomcat or jee hot deployment instead
Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new e24PaymentPipe. Cause: java.lang.ClassNotFoundException: e24PaymentPipe VM: 1.6.0_22#http://java.sun.com/" at: #-10
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) #-9
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) #-8
java.lang.Class.forName0(Native Method) #-7
java.lang.Class.forName(Class.java:247) #-6
php.java.bridge.Util.classForName(Util.java:1518) #-5
php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445) #-4
php.java.bridge.Request.handleRequest(Request.java:458) #-3
php.java.bridge.Request.handleRequests(Request.java:500) #-2
php.java.bridge.http.ContextRunner.run(ContextRunner.java:145) #-1
php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60) #0
http://example.com:portnumber/JavaBridge/java/Java.inc(232): java_ThrowExceptionProxyFactory->getProxy(3, 'java.util.Prope...', 'T', false) #1
Finally I don't know much about the java. So am stuck here not knowing what to do.
Here is a great step by step tutorial you can follow, which shows everything required! It is a little old (2007) but helped me a while ago.
There is also another option. You can install Apache Tomcat and deploy your war there. You can have even multiple tomcat instances simultaneously with your httpd running at the same time on the same machine, as long as you respect the port settings. You can even front them with Apache httpd.
you can try this:
package your code to jar, and copy it to java.ext.dirs which you can found in JavaBridge.log
copy the related class libraries to java.ext.dirs
restart the service of JavaBridge
good luck!
<?php require_once("JavaBridge/java/Java.inc");
try {
$hd = new java("hdfs.HDFS");
$hd->get("hdfs://master:9000/user/hadoop/test-in/logo_cn.png", "/home/hadoop/1.png");
} catch (JavaException $ex) { echo "An exception occured: "; echo $ex; echo "<br>\n";}
?>
You can use this php implementation on github that works with php 5.3.
See credits on the git readme for more information.
You can try this; put the JavaBridge.jar in tomcat's lib folder e.g. apache-tomcat-7.0.12/lib.
Restart tomcat server and then,
$pipe = new java("com.aciworldwide.commerce.gateway.plugins.e24PaymentPipe");
$pipe->setAction("1");
This way I created the php version of the object.
Why don't you put the e24PaymentPipe class in your Java application's classpath and skip the two lines below:
// $path_e24class = getcwd(). '/e24PaymentPipe.class';
// java_require($path_e24class);
$pipe = new java("fully.qualified.classpath.e24PaymentPipe");
You are mixing PHP side and Java side operations. in theory the java_require (which is deprecated) was designed to work on the Java side. You are specifying a PHP side path.
You can save yourself a lot of grief by using a pure PHP implementation of the e24PaymentPipe library.
Disclaimer
The link is to my github repo of the library, but I did not write it. See the readme in for original credits.
Hi I'm trying to install this tool 'Sean Corfield's scripting for ColdFusion project.' on my server - problem is I am getting "Class not found: com.caucho.quercus.script.QuercusScriptEngineFactory " errors, I have java 1.6 installed.... I'm not sure how where to get these extra classes ... any help?
[opensuse 11 system, CF8 java 1.6]
-thanks
-sean
Did you follow the installation instructions for the cfphp, as per the "example.cfm" page:
Installation:
1. Copy lib/quercus.jar and lib/resin-util.jar to WEB-INF/cfusion/lib/
(multiserver) or coldfusion8/lib (standalone)
2. Restart ColdFusion 8.
3. Optionally copy customtags/php.cfm into your custom tags path.
The important thing is that the quercus.jar is accessible to the JVM. Your error message indicates that the JVM can't find the jar.