Hello,
I am accessing our Unidata server from PHP using the java bridge for a few
months It has been working pretty well up until the current project I am
working on.
PHP calls a method in a U2 object, which uses Uniobjects for Java to
invoke a UniBasic Subroutine on our Unidata 7.1 redhat based server.
Recently I have intermittently received the following error message.
******************************************************
Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: Invoke failed:
[[o:U2]]->PbrGetMgrList.
Cause: java.lang.NoSuchMethodException: PbrGetMgrList().
Candidates:
[] Responsible VM: [EMAIL PROTECTED]://java.sun.com/" at:
#-5 php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1045)
#-4 php.java.bridge.Request.handleRequest(Request.java:405)
#-3 php.java.bridge.Request.handleRequests(Request.java:481)
#0 java.inc(257): java_ThrowExceptionProxyFactory->getProxy(52, '@N',
true)
#1 java.inc(473): java_Arg->getResult(true)
#2 java.inc(479): java_Client->getWrappedResult(true)
#3 java.inc(672): java_Client->getResult()
#4 java.inc(1786): java_Client->invokeMethod(51, 'PbrGetMgrList', Array)
#5 java.inc(1910): java_JavaProxy->__call('PbrGetMgrList', Array)
#6 java.inc(2072): java_AbstractJava->__call('PbrGetMgrList', Array)
#7 [internal function]: Java->__call('PbrGetMgrList', Array)
#8 /var/www/pbr/pbr.php(14): Java->PbrGetMgrList()
#9 {main}] thrown in java.inc on line 220
********************************************************
I am not sure what this is referring to. I don't find a java.inc anywhere
on the web server host.
This works most of the time, but sometimes not. and I don't see a
pattern. Most of the time it can be "fixed" by recompiling and rejarring
the Java object, but that doesn't always fix it. One thing I wondered
about is that this is the first time that I have called a program with no
input parameters.
Here is the java code.
/**
* @param none
* @return Tab delimited list of MGR_NAMES
*/
public String PbrGetMgrList() {
String result = "";
try {
OpenU2Session();
UniSubroutine uSub = uSession.subroutine("PbrGetMgrList",
1);
uSub.call();
result = uSub.getArg(0);
CloseU2Session();
} catch (UniSessionException e) {
result = "N";
} catch (UniSubroutineException e) {
result = "N";
} finally {
return result;
}
}
Here is the UniBassic Subroutine code
$BASICTYPE 'U'
SUBROUTINE PbrGetMgrList(RESULT)
****************************
* Tab delimits data items
EQU HTAB TO CHAR(9)
************************************
* Select records for this supervisor
************************************
RESULT = 'N'
ECMD = "SELECT MGRACCT.DATA SAVING UNIQUE NAME"
EXECUTE ECMD
IF @SYSTEM.RETURN.CODE <= 0 THEN RETURN
***********************************
* Build the list
***********************************
RESULT = ''
FIRST = 1
LOOP
READNEXT ID ELSE ID = ''
UNTIL ID = ''
* Insert a delimiter unless this is the first record
IF FIRST = 0 THEN
RESULT := HTAB
END ELSE
FIRST = 0
END
* ADD THE ID
RESULT := ID
REPEAT
RETURN
I suspect that an exception is happening that is not being handled. Any
ideas?
Senior Analyst
NTN-Bower Corporation
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/