gpt4 book ai didi

maven - IllegalArgumentException 在 Wildfly 14 上部署 CAS 5.3.10 Maven 覆盖 WAR

转载 作者:行者123 更新时间:2023-12-04 21:29:40 26 4
gpt4 key购买 nike

我在 Wildfly 14 上部署 CAS 5.3.10,使用 https://apereo.github.io/cas/5.3.x/installation/Configuring-Servlet-Container.html#external 中指定的 Maven 覆盖。并使用位于 https://github.com/apereo/cas-overlay-template/tree/5.3 的项目模板

我已经编辑了在 Wildfly 9 上正确部署的 pom,但在 Wildfly 14 上部署失败,出现以下异常:

Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.core.io.VfsUtils.invokeVfsMethod(VfsUtils.java:100) at org.springframework.core.io.VfsUtils.getFile(VfsUtils.java:172) at org.springframework.core.io.VfsResource.getFile(VfsResource.java:90) at org.apereo.cas.util.CasVersion.getDateTime(CasVersion.java:59) at org.apereo.cas.util.SystemUtils.getSystemInfo(SystemUtils.java:50) ...........



该问题似乎与 CasVersion 相关。尝试通过 VFS(通过 spring)访问以检索与模块的最后修改日期相关的信息的类。

最佳答案

由于@Marco 没有提供他的修复,我会的。对于遇到相同问题的任何人,请按照以下步骤解决:

  • 退房后cas-overlay-template , 创建 CasVersion.javasrc/main/java/org/apereo/cas/util 下内容如下:
  • package org.apereo.cas.util;

    import lombok.SneakyThrows;
    import lombok.experimental.UtilityClass;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.core.io.VfsResource;

    import java.io.File;
    import java.net.URL;
    import java.time.ZonedDateTime;


    /**
    1. Class that exposes the CAS version. Fetches the "Implementation-Version"
    2. manifest attribute from the jar file.
    3. 4. @author Dmitriy Kopylenko
    4. @since 3.0.0
    */
    @Slf4j
    @UtilityClass
    public class CasVersion {

    /**
    * @return Return the full CAS version string.
    * @see java.lang.Package#getImplementationVersion
    */
    public static String getVersion() {
    return CasVersion.class.getPackage().getImplementationVersion();
    }

    /**
    * Gets specification version from the manifest package.
    *
    * @return the specification version
    */
    public static String getSpecificationVersion() {
    return CasVersion.class.getPackage().getSpecificationVersion();
    }

    /**
    * Gets last modified date/time for the module.
    *
    * @return the date/time
    */
    @SneakyThrows
    public static ZonedDateTime getDateTime() {
    final Class clazz = CasVersion.class;
    final URL resource = clazz.getResource(clazz.getSimpleName() + ".class");
    if ("file".equals(resource.getProtocol())) {
    return DateTimeUtils.zonedDateTimeOf(new File(resource.toURI()).lastModified());
    }
    if ("jar".equals(resource.getProtocol())) {
    final String path = resource.getPath();
    final File file = new File(path.substring(5, path.indexOf('!')));
    return DateTimeUtils.zonedDateTimeOf(file.lastModified());
    }
    // These lines are causing the reported exception so we just comment them out.
    // if ("vfs".equals(resource.getProtocol())) {
    // final File file = new VfsResource(resource.openConnection().getContent()).getFile();
    // return DateTimeUtils.zonedDateTimeOf(file.lastModified());
    // }
    LOGGER.warn("Unhandled url protocol: [{}] resource: [{}]", resource.getProtocol(), resource);
    return ZonedDateTime.now();
    }
    }
  • 将以下依赖项添加到 pom.xml
  •     <!-- Required for lombok imports -->              
    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.16</version>
    <scope>provided</scope>
    </dependency>
    <!-- Required for DateTimeUtils to be available on classpath -->
    <dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-core-util</artifactId>
    <version>${cas.version}</version>
    </dependency>
  • 替换任何出现的 <app-server>-tomcat</app-server><app-server></app-server>因为你要提供应用程序服务器。

  • 以上步骤应该足以解决 报告的问题 .

    关于maven - IllegalArgumentException 在 Wildfly 14 上部署 CAS 5.3.10 Maven 覆盖 WAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56543772/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com