tomcat module-info.java jakarata.WebSocket提供的两个jar如何解决

gcmastyq  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(52)

我正在创建简单的聊天应用程序,但在模块-info.java中出现问题。在我的maven pom.xml中有以下内容。两个模块与web-socket模块发生冲突。我如何限制并只使用Tyrus客户端jar而不是web-socket模块。这样我就可以避免冲突。我花了半天的时间,但没有通过互联网获得解决方案。Tyrus核心也是使用tomcat-WebSocket.如何限制不带jaksocket请WebSocket帮忙解决

pom.xml文件

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>JavaChatApplication</groupId>
    <artifactId>JavaChatApplication</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <!--
        https://mvnrepository.com/artifact/org.kordamp.bootstrapfx/bootstrapfx-core -->
        <dependency>
            <groupId>org.kordamp.bootstrapfx</groupId>
            <artifactId>bootstrapfx-core</artifactId>
            <version>0.4.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.controlsfx/controlsfx -->
        <dependency>
            <groupId>org.controlsfx</groupId>
            <artifactId>controlsfx</artifactId>
            <version>11.1.2</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
            <version>3.1.6</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.tyrus</groupId>
            <artifactId>tyrus-client</artifactId>
            <version>2.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>2.0.9</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>2.0.9</version>
        </dependency>
    </dependencies>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <release>17</release>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

字符串

moudle-info.xml

module com.example.javachatapplication {
    requires javafx.controls;
    requires javafx.fxml;
            
    requires org.controlsfx.controls;
    requires org.kordamp.bootstrapfx.core;
    requires jakarta.websocket;
    requires org.slf4j;
    
    opens com.client.javachatapplication to javafx.fxml;
    exports com.client.javachatapplication;
}

项目结构

├── build.fxbuild
├── pom.xml
├── src
│   ├── application
│   │   ├── application.css
│   │   └── Main.java
│   ├── main
│   │   ├── java
│   │   │   ├── com
│   │   │   │   ├── client
│   │   │   │   │   └── javachatapplication
│   │   │   │   │       ├── ChatApplication.java
│   │   │   │   │       ├── ClientGUIReceiver.java
│   │   │   │   │       ├── ClientReceiver.java
│   │   │   │   │       ├── MainContainer.java
│   │   │   │   │       └── ServerThread.java
│   │   │   │   └── server
│   │   │   │       ├── ClientThread.java
│   │   │   │       ├── Main.java
│   │   │   │       └── Server.java
│   │   │   └── module-info.java
│   │   └── resources
│   │       └── com
│   │           └── client
│   │               └── javachatapplication
│   │                   └── view.fxml
│   └── module-info.java
└── target
    ├── classes
    │   └── module-info.class
    └── test-classes

运行应用程序出错

Error occurred during initialisation of boot layer
java.lang.LayerInstantiationException: Package jakarta.websocket.server in both module jakarta.websocket and module org.apache.tomcat.embed.websocket


x1c 0d1x的数据

pkln4tw6

pkln4tw61#

经过一整晚的努力,我们已经解决了循环依赖或冲突依赖,包括单个依赖。请删除embd tomcat并包括单个依赖。感谢所有支持
在我的pom.xml中

<?xml version="1.0" encoding="UTF-8"?><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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.wsclient</groupId>
<artifactId>wsclient</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>simplewsClient</name>
<description>Demo project for Spring Boot</description>
<properties>
    <java.version>17</java.version>
</properties>
<dependencies>

    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>21.0.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.tyrus</groupId>
        <artifactId>tyrus-client</artifactId>
        <version>2.1.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-api</artifactId>
        <version>10.1.17</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-coyote</artifactId>
        <version>10.1.17</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-util-scan</artifactId>
        <version>10.1.17</version>
    </dependency>
    <dependency>
        <groupId>jakarta.servlet.jsp</groupId>
        <artifactId>jakarta.servlet.jsp-api</artifactId>
        <version>3.1.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>jakarta.el</groupId>
        <artifactId>jakarta.el-api</artifactId>
        <version>5.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-websocket</artifactId>
        <version>10.1.17</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <release>11</release>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>0.0.3</version>
            <configuration>
                <mainClass>com.wsclient.App</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

字符串

相关问题