当前位置: 首页 > 知识库问答 >
问题:

无法导入任何javax-servlet在Maven项目在Netbean

韩飞翮
2023-03-14

我正在做一个Maven项目,这是我第一次和Maven在一起。我正在使用Netbean和Tomcat服务器,我不能导入任何javax.servlet例如导入javax.servlet.请求调度;等等。看起来是这样的:

我有pom。xml文件位于C://pathtonetbeanprojects/myProject/pom中。xml和我为javaxservlet添加了一个依赖项,现在是我的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 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>org.glassfish.jersey.archetypes</groupId>
<artifactId>ParkingSystem</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>ParkingSystem</name>

<build>
    <finalName>ParkingSystem</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <inherited>true</inherited>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey</groupId>
            <artifactId>jersey-bom</artifactId>
            <version>${jersey.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <!-- use the following artifactId if you don't need servlet 2.x compatibility -->
        <!-- artifactId>jersey-container-servlet</artifactId -->
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.inject</groupId>
        <artifactId>jersey-hk2</artifactId>
    </dependency>
    <!-- uncomment this to get JSON support -->
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-binding</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>       
</dependencies>

<properties>
    <jersey.version>2.27</jersey.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

我不知道我的pom是否有问题。xml或者我可能需要在Netbeans中做些什么来让它工作。但我真的不知道是什么。

共有2个答案

寇照
2023-03-14

强制更新你的maven项目或在你的项目的目录上运行mvn清除安装来下载pom.xml.的所有依赖然后构建你的项目,javax-servlet将可用。

储国发
2023-03-14

问题99%是由Maven在该库上执行的不同导入造成的。Maven按照层次化的方式导入您的lib,因此您导入的某些lib可能包含javax。servlet,但它不是您需要的版本。

首先,我建议您通过查看maven层次结构来寻找解决冲突的方法,您可以使用console命令mvn dependency:tree-Dverbose(查看这里的示例)来实现这一点。

然后,可以通过库中的特定maven命令忽略不需要的库:

<dependency>
....

    <exclusions> 
        <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
        </exclusion>
    </exclusions> 

</dependency>

这是一个对理解“为什么”会发生这种情况有用的解释,所以你可以理解它。

顺便说一下,一个快速的解决方案,你可以尝试作为第一个实例,移动你想要的导入javax.servlet作为你的pom的第一个元素。

 类似资料:
  • 我正在使用Android studio。我试图导入javax。摆动。* 的登录页面,所以我试图写句子导入这是导入javax。摆动。*;。 但什么都没发生,一句话让进口绝望。 你能教我如何解决这个问题吗?

  • 我使用我在这里找到的原型创建了一个Maven JavaFX项目:https://github.com/openjfx/javafx-maven-archetypes 一切都运行顺利,我可以运行一个项目,带有一些标签、文本框和一些按钮,没有问题。但是,当我尝试添加WebView元素(尽管IntelliJ中的场景生成器可以识别)时,我无法让导入工作。 我的pom.xml: 我的主要fxml文档来描述视

  • 我有一个(命令行)基于maven的项目,非常好用(mvn清理、mvn验证、安装都很完美)!我现在想把它导入eclipse,不是作为maven项目,而是常规的eclipse项目。 我做到了,但我有一个依赖性问题,我只需将创建的所有jar复制到。m2文件夹到我的eclipse工作区中的另一个文件夹。然后我将所有这些罐子添加到我的项目中。 一切都好! 问题是:我觉得这不是在eclipse中管理依赖关系的

  • 我尝试将计算机中的java maven项目导入到eclipse sts/Spring tool Suite3.9中,如下所示:eclipse sts>file menu>import>existing maven projects>等等。 我在谷歌上找不到任何解决这个问题的答案。如何修复此错误?

  • 我首先通过执行生成了一个gwt maven项目- mvn原型:生成-Darch etypeGroupId=org.codehaus.mojo-Darch etypeartifactId=gwt-maven-plugin-Darch etypeVersion=2.7.0 在那之后,pom。xml如下所示: 然后我通过内置的eclipse函数将这个项目导入eclipse——导入现有的Maven项目。