I’m using a 3rd party library for writing tests that use (secure) WebSockets.
I include this library (stored in the Drive) and my project’s settings regarding Plugin retrieval/updates are set to ‘Katalon Store and Local’ (I’m assuming the same behavior occurs with ‘Katalon Store’ only as well).
Correction: my test will (using the Katalon Runtime Engine in an Azure devops CICD pipeline) run but the result of the run will be an ‘exit 1’ instead of ‘exit 0’.
When setting the Plugin retrieval/update to ‘Local’ only, the problem doesn’t occur.
The issue does not show up in the command line/CICD output, but in the ‘…/configuration/…log’ file(s):
Latest plugins responses: [{
"id": 220961,
"status": 1,
"expiration_date": null,
"created_at": "2022-12-06T10:14:16.516Z",
"updated_at": "2022-12-06T10:14:16.516Z",
"active": true,
"send_expiration_mail": false,
"send_expiration_reminder_mail": false,
"user_id": 264783,
"bundled_plugin_id": null,
"product": {
"id": 120,
"plugin_id": null,
"name": "WebSocketConnect",
"description": "Use this Plugin to make Websocket Connection,send and receive messages.",
"logo": "l8sa06yklnuios7l-1280px-Html5_connectivity.svg.png",
"repository": null,
"documentation": null,
"reference": null,
"license": null,
"release_date": null,
"qa_url": null,
"status": 1,
"created_at": "2019-08-13T01:56:51.349Z",
"updated_at": "2019-12-31T04:11:59.004Z",
"overview": "Same Test Case to use the plugin\r\n\r\n//Sample server\r\nString destUri = \"ws://echo.websocket.org\";\r\n\r\n\r\n\r\nString msg =\"This is test API request\"\r\n\r\nsocket = CustomKeywords.'websocketConnection.WebSocketConnect.CreateWebSocketConnection'()\r\nCustomKeywords.'websocketConnection.WSclient.CreateClient'(destUri,socket)\r\nsocket.sendMessage(msg)\r\n\r\n\t// wait for socket connection to close\r\n\tsocket.awaitClose(5,TimeUnit.SECONDS);\r\n\t\r\n\tSystem.out.printf(\"Message has reached me : %s%n\",socket.reply);",
"price": null,
"stripe_product_id": null,
"reject_reason": null,
"latest_version_number": null,
"product_type_id": 2,
"marketplace_id": null,
"product_versions": [{
"id": 184,
"number": "2.0.0",
"source": "2ept8nyhqrskiowo-WebSocketPlugIn.zip",
"status": 1,
"created_at": "2019-08-13T01:56:51.357Z",
"updated_at": "2019-08-13T01:56:56.772Z",
"min_app_version": null,
"max_app_version": null,
"change_log": ""
}
],
"product_type": {
"id": 2,
"name": "Custom Keywords Plugin",
"description": "Custom Keywords Plugin",
"sequence": 1,
"created_at": "2019-03-14T08:13:50.036Z",
"updated_at": "2019-03-14T08:13:50.036Z",
"view_type": 0
},
"product_categories": [{
"id": 2,
"name": "Utilities",
"short_name": "",
"description": "Utilities",
"order": 3,
"hide": false,
"use_carousel": false,
"created_at": "2019-06-13T08:48:28.556Z",
"updated_at": "2020-08-03T09:32:20.864Z",
"product_join_category": {
"id": 189,
"created_at": "2019-12-31T04:11:59.018Z",
"updated_at": "2019-12-31T04:11:59.018Z",
"product_id": 120,
"category_id": 2
}
}
],
"logoUrl": "https://katalon-store.s3.amazonaws.com/l8sa06yklnuios7l-1280px-Html5_connectivity.svg.png",
"categories": "Utilities",
"url": "/product/120"
},
"license_type": {
"id": 1,
"name": "Free",
"active": true,
"day": null,
"month": null,
"year": null,
"created_at": "2019-01-30T01:47:14.080Z",
"updated_at": "2019-01-30T01:47:14.080Z"
},
"free": true,
"trial": false,
"paid": false,
"expired": false,
"canceled": false,
"uninstalled": false,
"finalized": false,
"compatible_versions": [{
"id": 184,
"number": "2.0.0",
"source": "2ept8nyhqrskiowo-WebSocketPlugIn.zip",
"status": 1,
"created_at": "2019-08-13T01:56:51.357Z",
"updated_at": "2019-08-13T01:56:56.772Z",
"min_app_version": null,
"max_app_version": null,
"change_log": ""
}
],
"latest_compatible_version": {
"id": 184,
"number": "2.0.0",
"source": "2ept8nyhqrskiowo-WebSocketPlugIn.zip",
"status": 1,
"created_at": "2019-08-13T01:56:51.357Z",
"updated_at": "2019-08-13T01:56:56.772Z",
"min_app_version": null,
"max_app_version": null,
"change_log": ""
},
"current_version": {
"id": 184,
"number": "2.0.0",
"source": "2ept8nyhqrskiowo-WebSocketPlugIn.zip",
"status": 1,
"created_at": "2019-08-13T01:56:51.357Z",
"updated_at": "2019-08-13T01:56:56.772Z",
"min_app_version": null,
"max_app_version": null,
"change_log": ""
},
"latest_version": {
"id": 184,
"number": "2.0.0",
"source": "2ept8nyhqrskiowo-WebSocketPlugIn.zip",
"status": 1,
"created_at": "2019-08-13T01:56:51.357Z",
"updated_at": "2019-08-13T01:56:56.772Z",
"min_app_version": null,
"max_app_version": null,
"change_log": ""
},
"created_date": "December 6th 2022, 10:14 am",
"download_url": "https://plugins.katalon.com/2ept8nyhqrskiowo-WebSocketPlugIn.zip?Expires=XXX_&Key-Pair-Id=XXX"
}
]
Tue Oct 17 11:55:11 CEST 2023
Could not load class: websocketConnection.WebSocketConnect.CreateWebSocketConnection of custom plugin keyword: WebSocketPlugIn.jar
java.lang.ClassNotFoundException: websocketConnection.WebSocketConnect.CreateWebSocketConnection
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:702)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:812)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:800)
at com.kms.katalon.custom.improvement.plugin.parser.CustomKeywordPluginsParser.parsePluginFiles(CustomKeywordPluginsParser.java:75)
at com.kms.katalon.custom.improvement.parser.ImprovedCustomKeywordParser.parsePluginCustom(ImprovedCustomKeywordParser.java:172)
at com.kms.katalon.custom.improvement.parser.ImprovedCustomKeywordParser.parseCustomPlugins(ImprovedCustomKeywordParser.java:74)
at com.kms.katalon.controller.ImprovedKeywordControllerDelegate.parsePluginCustomKeywords(ImprovedKeywordControllerDelegate.java:60)
at com.kms.katalon.controller.KeywordController.parsePluginCustomKeywords(KeywordController.java:169)
at com.kms.katalon.activation.plugin.service.PluginService.refreshProjectClasspath(PluginService.java:518)
at com.kms.katalon.activation.plugin.service.PluginService.reloadPlugins(PluginService.java:262)
at com.kms.katalon.activation.plugin.handler.ConsoleModeReloadPluginsHandler.reload(ConsoleModeReloadPluginsHandler.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.kms.katalon.console.application.ConsoleMain.reloadPlugins(ConsoleMain.java:554)
at com.kms.katalon.console.application.ConsoleMain.launch(ConsoleMain.java:473)
at com.kms.katalon.console.application.ConsoleApplicationStarter.start(ConsoleApplicationStarter.java:36)
at com.kms.katalon.application.Application.runConsole(Application.java:125)
at com.kms.katalon.application.Application.start(Application.java:88)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
Tue Oct 17 11:55:11 CEST 2023
Could not load class: websocketConnection.WSclient.CreateClient of custom plugin keyword: WebSocketPlugIn.jar
java.lang.ClassNotFoundException: websocketConnection.WSclient.CreateClient
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:702)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:812)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:800)
at com.kms.katalon.custom.improvement.plugin.parser.CustomKeywordPluginsParser.parsePluginFiles(CustomKeywordPluginsParser.java:75)
at com.kms.katalon.custom.improvement.parser.ImprovedCustomKeywordParser.parsePluginCustom(ImprovedCustomKeywordParser.java:172)
at com.kms.katalon.custom.improvement.parser.ImprovedCustomKeywordParser.parseCustomPlugins(ImprovedCustomKeywordParser.java:74)
at com.kms.katalon.controller.ImprovedKeywordControllerDelegate.parsePluginCustomKeywords(ImprovedKeywordControllerDelegate.java:60)
at com.kms.katalon.controller.KeywordController.parsePluginCustomKeywords(KeywordController.java:169)
at com.kms.katalon.activation.plugin.service.PluginService.refreshProjectClasspath(PluginService.java:518)
at com.kms.katalon.activation.plugin.service.PluginService.reloadPlugins(PluginService.java:262)
at com.kms.katalon.activation.plugin.handler.ConsoleModeReloadPluginsHandler.reload(ConsoleModeReloadPluginsHandler.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.kms.katalon.console.application.ConsoleMain.reloadPlugins(ConsoleMain.java:554)
at com.kms.katalon.console.application.ConsoleMain.launch(ConsoleMain.java:473)
at com.kms.katalon.console.application.ConsoleApplicationStarter.start(ConsoleApplicationStarter.java:36)
at com.kms.katalon.application.Application.runConsole(Application.java:125)
at com.kms.katalon.application.Application.start(Application.java:88)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
I’m using 8.6.0 (problem also happens with 8.6.8) in Azure DevOps with GitHub - TooTallNate/Java-WebSocket: A barebones WebSocket client and server implementation written in 100% Java. (v1.5.4)
Has anyone experienced the same?