OK, the first thing you need to do is read them. For instance, I see that AjaxSwing is not able to start JVM for application "Copy of SmartCube". You probably don't even mean to have this app, so either delete this file or remove #AjaxSwing properties file from the header. That would prevent your system and log files from being overwhelmed.
Agree. That comes from making a backup copy of the original wizard-generated smartcube .properties file before modifying it by hand, but leaving the backup copy in the same directory. Easily corrected.
I don't see any calls to endOperation() so the request is just hanging. Can you make sure that you are calling endOperation() on the right client agent?
I'm beginning to suspect that myself. I did some reading of the code, and the entire client consists of about 6 lines of code.
Consider the following:
public static void main(String[] args) {
AjaxSwingManager.beginOperation();
[snip preliminaries ]
// Run the actual client loaded from the server
try {
Class<?> clientClass = RMIClassLoader.loadClass(URL.toString(), "[package spec].ClientApplicationRunnable");
Method m = clientClass.getDeclaredMethod("start", String.class);
m.invoke(null, hostname);
}
So what's happening here is that the client is a mere stub. It activates, and loads the
*entire client* via an RMI connection. I'll wager the legacy developers were thinking that
by doing so they could ease maintainability by having only one 'real' program.
So the *entire client* is being run via an RMI/RPC connection.
I'll wager that's why we're getting the error we're seeing. The beginOperation()
is indeed in the client, but the endOperation() call is buried in a server RMI call as above.
So we see beginOperation but not endOperation(). Resulting in a permanent hangup.
I'll betcha anything that moving the beginOperation() to the server RMI results in *both*
calls disappearing from the log files. I'll try it anyway, but I think we both know
already what the result will be.
...
Now that we've discussed this, I believe that this application cannot be made to work
programmatically with AjaxSwing unless it is significantly re-engineered to get rid of the entire
'stub client with RMI classloading' concept. Am I wrong?
If I am right ... is there another possible solution? I'll have a look at the 'server push'
concept that the previous poster discussed. Are there other possibilities?
Respectfully,
Brian P.