Wildfly 27 迁移(Jakarta EE 10)导致启动问题

问题描述 投票:0回答:1

我正在从 Wildfly 25 迁移到 Wildfly 30。但是,在尝试跳跃时发生了很多问题。我能够毫无问题地达到 26。然而,到了27岁,我遇到了很多问题。我已从 javax 更新到雅加达。现在一切都编译正常了。但是,初始化现在失败。初始化似乎是由 web.xml 文件决定的。

这是我看到的初始启动警告(后面有许多类似的警告):

09:57:07,949 WARN  [org.jboss.modules.define] (MSC service thread 1-8) Failed to define class com.oberon.esg.server.SessionTimeoutCookieFilter in Module "deployment.esg.war" from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link com/oberon/esg/server/SessionTimeoutCookieFilter (Module "deployment.esg.war" from Service Module Loader): javax/servlet/Filter
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1096)
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:351)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482)
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:276)
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:79)
    at org.jboss.modules.Module.loadModuleClass(Module.java:765)
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:192)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at [email protected]//org.jboss.as.ee.utils.ClassLoadingUtils.loadClass(ClassLoadingUtils.java:21)
    at [email protected]//org.jboss.as.ee.utils.ClassLoadingUtils.loadClass(ClassLoadingUtils.java:14)

        ...

但是 com.oberon.esg.server.SessionTimeoutCookieFilter 类位于分解的 war 文件中: ./content-1570ca522c4f5e25/WEB-INF/classes/com/oberon/esg/server/SessionTimeoutCookieFilter.class

随后还有其他过滤器和 servlet 的附加加载错误消息。因此,我认为这与 Java EE 8 和 Jakarta EE 10 之间发生的变化有关。但是,我无法缩小 Wildfly 配置中需要升级的范围。

我不确定为什么错误提到javax/servlet/Filter。我想我只在代码中引用 jakarta.servlet 。这是我的 web.xml:

<web-app
        xmlns="https://jakarta.ee/xml/ns/jakartaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
        version="6.0"
>
    <display-name>ESG WebApplication</display-name>

    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value>/rest</param-value>
    </context-param>

    <listener>
        <listener-class>com.pearson.esg.server.PRMSContextListener</listener-class>
    </listener>
    <listener>
        <listener-class>
            org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
        </listener-class>
    </listener>

    <filter>
        <filter-name>SessionTimeoutCookieFilter</filter-name>
        <filter-class>com.oberon.esg.server.SessionTimeoutCookieFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>SessionTimeoutCookieFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    ...


</web-app>

这是我的 pom.xml,我想它可能会引入我不理解的 javax 依赖项。然而,IntelliJ 没有看到任何:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.pearson.prms</groupId>
    <artifactId>PRMS</artifactId>
    <version>SNAPSHOT</version>
    <packaging>war</packaging>

    <name>esg</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
    </properties>

    <distributionManagement>
        <repository>
            <id>maven2</id>
            <name>Maven Central Repo</name>
            <url>https://repo1.maven.org/maven2/</url>
        </repository>
        <snapshotRepository>
            <id>PearsonSnapshot</id>
            <name>PearsonSnapshot</name>
            <url>https://nexus2.pearsondev.com/nexus/content/repositories/PearsonSnapshot/</url>
        </snapshotRepository>
    </distributionManagement>

    <build>
        <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
        <finalName>esg</finalName>
        <resources>
            <resource>
                <directory>${basedir}/src/main/java/com/oberon/esg/util</directory>
                <includes>
                    <include>build.number</include>
                </includes>
                <targetPath>${basedir}/target/esg/WEB-INF/classes/com/oberon/esg/util</targetPath>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
                <targetPath>${basedir}/target/esg</targetPath>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.4</version>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.3</version>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.1.1</version>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <version>2.0.0</version>
                <executions>
                    <execution>
                        <id>upload-war-to-server</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>upload</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <fromDir>${project.build.directory}</fromDir>
                    <includes>esg.war</includes>
                    <toDir>dev-tools/wildfly-11.0.0.Final/standalone/deployments</toDir>
                </configuration>
            </plugin>

        </plugins>
    </build>

    <dependencies>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.2.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
            <version>2.20.0</version>
        </dependency>

        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-client</artifactId>
            <version>6.2.6.Final</version>
        </dependency>

        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-client</artifactId>
            <version>6.2.6.Final</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>6.0.0</version>
        </dependency>

        <dependency>
            <groupId>jakarta.xml.rpc</groupId>
            <artifactId>jakarta.xml.rpc-api</artifactId>
            <version>1.1.4</version>
        </dependency>

        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <version>4.0.1</version>
        </dependency>

        <dependency>
            <groupId>jakarta.mail</groupId>
            <artifactId>jakarta.mail-api</artifactId>
            <version>2.1.2</version>
        </dependency>

        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-multipart-provider</artifactId>
            <version>6.2.6.Final</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.5</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-fileupload2-jakarta</artifactId>
            <version>2.0.0-M1</version>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.14</version>
        </dependency>

        <dependency>
            <groupId>org.owasp.antisamy</groupId>
            <artifactId>antisamy</artifactId>
            <version>1.7.4</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.5.14</version>
        </dependency>

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk</artifactId>
            <version>1.12.498</version>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.10.1</version>
        </dependency>

        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>5.4.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-text</artifactId>
            <version>1.10.0</version>
        </dependency>

    </dependencies>

</project>

蒂亚!

jakarta-ee jboss wildfly jakarta-migration
1个回答
0
投票

通过查看分解的、部署的 war 文件,我发现 javax 仍然被拉入我的 war 文件中。在我的构建区域中进行一些 grep 搜索,我发现 javax 被一些旧的单元测试引入。我删除了单元测试目录,现在我看到初始化正常进行:

17:04:38,242 DEBUG [org.jboss.as.ee] (MSC service thread 1-4) Configuring component class: com.oberon.esg.server.SessionTimeoutCookieFilter named com.oberon.esg.server.SessionTimeoutCookieFilter

仍然有问题,但我又跨过了一个障碍。

© www.soinside.com 2019 - 2024. All rights reserved.