From b91e34511eabc06d1e70b99e605a118860b6020a Mon Sep 17 00:00:00 2001 From: Nikita Vaserin Date: Thu, 25 May 2023 14:03:19 +0300 Subject: [PATCH] Added loading jakarta.jws.WebParam when javax.jws.WebParam was not found --- .../com/googlecode/jsonrpc4j/JsonRpcBasicServer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/googlecode/jsonrpc4j/JsonRpcBasicServer.java b/src/main/java/com/googlecode/jsonrpc4j/JsonRpcBasicServer.java index 2a954a6..9e195ff 100644 --- a/src/main/java/com/googlecode/jsonrpc4j/JsonRpcBasicServer.java +++ b/src/main/java/com/googlecode/jsonrpc4j/JsonRpcBasicServer.java @@ -50,6 +50,7 @@ public class JsonRpcBasicServer { public static final String VERSION = "2.0"; public static final int CODE_OK = 0; public static final String WEB_PARAM_ANNOTATION_CLASS_LOADER = "javax.jws.WebParam"; + public static final String WEB_PARAM_ANNOTATION_CLASS_LOADER_JAKARTA = "jakarta.jws.WebParam"; public static final String NAME = "name"; public static final String NULL = "null"; private static final Logger logger = LoggerFactory.getLogger(JsonRpcBasicServer.class); @@ -136,7 +137,15 @@ private static void loadAnnotationSupportEngine() { WEB_PARAM_ANNOTATION_CLASS = classLoader.loadClass(WEB_PARAM_ANNOTATION_CLASS_LOADER).asSubclass(Annotation.class); WEB_PARAM_NAME_METHOD = WEB_PARAM_ANNOTATION_CLASS.getMethod(NAME); } catch (ClassNotFoundException | NoSuchMethodException e) { - logger.debug("Could not find {}.{}", WEB_PARAM_ANNOTATION_CLASS_LOADER, NAME); + logger.debug("Could not find {}.{}", WEB_PARAM_ANNOTATION_CLASS_LOADER, NAME); + logger.debug("Try to load it from jakarta package"); + try { + WEB_PARAM_ANNOTATION_CLASS = classLoader.loadClass(WEB_PARAM_ANNOTATION_CLASS_LOADER_JAKARTA).asSubclass(Annotation.class); + WEB_PARAM_NAME_METHOD = WEB_PARAM_ANNOTATION_CLASS.getMethod(NAME); + } catch (ClassNotFoundException | NoSuchMethodException ex) { + logger.debug("Could not find {}.{}", WEB_PARAM_ANNOTATION_CLASS_LOADER_JAKARTA, NAME); + } + } }