cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
890
Views
6
Helpful
4
Replies

CVP Scripting

inasr
Community Member

In PCCE 15.0, when scripting and using many custom elements, if I use custom elements inside the app.callflow that I place inside C:\Users\Administrator.DCLOUD\Desktop\test\deploy\java\application\lib and create other elements that I place inside C:\Cisco\CallStudio\eclipse\plugins, what I face when it is done

1. On validate inside call studio, it completes successfully.

2. On deploy, I face no issues when deploying from call studio and on AW Spog. But when looking inside logs under 

a. C:\Cisco\CVP\VXMLServer\logs\GlobalErrorLogger

03/16/2026 09:38:55.113, SERVER ERROR: There was an error attempting to deploy the application. The error was: com.audium.server.AudiumException: There was a problem loading classes local to the application test.
03/16/2026 09:38:55.120, SERVER ERROR: There was at least one error encountered while deploying all new applications. Refer to the global admin and error logs and/or the individual application's error log for a description of the error encountered.
03/16/2026 10:00:19.486, SERVER ERROR: There was an error attempting to deploy the application. The error was: com.audium.server.AudiumException: There was a problem loading classes local to the application test.
03/16/2026 10:00:19.486, SERVER ERROR: There was at least one error encountered while deploying all new applications. Refer to the global admin and error logs and/or the individual application's error log for a description of the error encountered.

b. C:\Cisco\CVP\VXMLServer\logs\GlobalAdminLogger

03/16/2026 06:50:00.961,server_start,success
03/16/2026 09:38:55.121,deploy_all_apps,The application 'test' failed to deploy.
03/16/2026 09:39:05.685,update_all_apps,success
03/16/2026 10:00:19.486,deploy_all_apps,The application 'test' failed to deploy.
03/16/2026 10:00:22.098,update_all_apps,success

c. C:\Cisco\CVP\VXMLServer\applications\test\logs is empty

 

3. Inside C:\Cisco\CVP\VXMLServer\applications\test\java\application\lib, I find two jars that I need.

 

My question is if I need to do something about the custom plugins used in the global directory instead of the local one. Is there a way to catch all plugins placed under callstudio eclipse and place them under CVP to make these classes local to them?

 

Note that the plugin folder has folders containing .class and lib containing .jar and I am unsure how they are interconnected so I would prefer to keep everything.

Also, this is happening with migrations where I am unsure how the links are made and broken.

4 Replies 4

janinegraves
Spotlight
Spotlight

1. It is almost always the case that if you get this error message "There was a problem loading classes local to the application test." that on VXMLServer, under the directory VXMLServer\applications\appname\java\application\classes there are compiled "class" files that were copied or deployed into the "wrong location" due operator error. Usually this is due to forgetting to keep the class file within the directory structure based on its 'package' declaration. 

For example, if I have a file named "MyActionElement.java" which contains the line "package com.myCompany" then when I compile the file into MyActionElement.class it MUST MUST MUST reside in the directory "com\myCompany\MyActionElement.class"  otherwise it's an invalid class file. And any invalid class files will cause VXMLServer to fail to load it into memory.

And so on VXMLServer, this example class file MUST reside in VXMLServer\applications\appname\java\application\classes\com\MyCompany\MyActionElement.class

AND since you've had a problem already, the new one won't fix the problem. Instead you must MANUALLY remove any mis-placed class files from VXMLServer\applications\appname\java\application\classes\ that remain from previously deploying. Because when you Deploy from CallStudio the system only ADDS files, it never removes old files that may have been in the wrong location. So if you don't clean up the  VXMLServer\applications\appname\java\application\classes\ directory then you'll never be able to successfully load the app into memory, even once you do fix the problem.

 

 

The ".java" file is source code.
The ".class" file is the compiled form.
The ".jar" file is a java archive (like a .zip file).
If you have .class files, they MUST reside within a directory structure matching the package declaration usually located on the first line of the source code.  

So this file com\MyCompany\MyAction.java might look like this:
"
package com.MyCompany;
public class MyAction extends ActionElementBase{ };
"

It compiles into  com\MyCompany\MyAction.class

1) This file can then go into Call Studio app under appname\deploy\java\application\classes\com\MyCompany\MyAction.class  and it will then be available only for this one application.

When you deploy the app to VXMLServer, it'll be automatically copied to the correct location: VXMLServer\applications\appname\java\application\classes\com\MyCompany\MyAction.class 

2) When compiling the class file, you can instead export it (along with other class files) into a JAR file - similar to zipping up one or more files.

In this case you'd end up with a custom file name like  "MyCustomCode.jar"  - which contains the directory structure and the class - so it contains the com\MyCompany\MyAction.class (plus possibly other files). 

So for this you could copy MyCustomCode.jar into Call Studio and place it under appname\deploy\java\application\lib\MyCustomCode.jar  and when it deploys to VXMLServer, it'll be copied to 
VXMLServer\applications\appname\java\application\lib\MyCustomCode.jar 

Note it's not obvious what class files are in a "jar"!

3. I prefer using .class files as it's easier to see what you're working with. 

4. These same class and jar files are sometimes placed under VXMLServer/common/classes or common/lib after being fully tested so that multiple apps can use the same code. Not all code under VXMLServer/common can be moved into an application. This code might be used by multiple apps. I highly recommend that if you had code under VXMLServer/common before upgrading, that you just copy it to the same directory on the new system.

 

 

 

 

You asked about the VXMLServer\applications\appname\java\application\classes folder 

Wow Janine.. this is like attending call studio training session.. Thank you!

inasr
Community Member

Thank you Janine for your prompt response.

I was able to get rid of some errors based on your advice. But now the issue is a bit more difficult.

As mentioned, the project includes migration of the script and plugins from UCCE 11.6 to 15.0. There are many Java files, libraries, and plugins that may be deprecated. I don't have the original source code to refactor them one by one. So my only option is to find and import all the old jar files one by one (which I also don't know where they are exactly so I need to download them again) to solve the dependency issues since I am getting many errors when restarting VMXL and CallServer Services that NoClassDefFoundError. I was able to retrieve a bulk of them, but now the missing is com/cisco/thunderhead/connector/updates/ReloadListener which as I found is an old ECE dependency.

My other option is to rebuild the entire thing from scratch which will be a very last resort.

My question is if I can skip this CVP migration, finish the entire upgrade and integration of components on the new 15.0 setup, or if it is best to complete the CVP script migration before continuing, knowing that ECE is not done yet on the new one.

Also, is there any way to be sure if certain classes like the one I mentioned are definitely deprecated and as such, there is no way out but to rebuild?