【问题标题】:Tomcat in Intellij Idea Community EditionIntellij Idea 社区版中的 Tomcat
【发布时间】:2014-03-29 15:54:54
【问题描述】:

是否可以在 Intellij Idea Community Edition 中使用 Tomcat 服务器运行 Web 应用程序?

我试图找到有关它的一些信息,但没有取得任何成功。

【问题讨论】:

    标签: java apache tomcat intellij-idea


    【解决方案1】:

    在 IntelliJ IDEA Community Edition 中使用 Tomcat 9,无需安装任何插件

    注意:确保设置了环境变量 JAVA_HOMECATALINA_HOME。如果最近重置了 JAVA_HOMECATALINA_HOME 的值,请重新启动 IntelliJ IDEA,然后再继续。

    1. 首先在IntelliJ IDEA中打开项目,然后点击File>Settings...>Tools>External Tools,然后点击+按钮。
    2. 然后我们必须为 Tomcat 指定 Name,然后在 Program 中我们 必须指定 bin 文件夹中 catalina.bat 文件的路径 Tomcat 安装的文件夹,然后在 Arguments 中我们必须写 jpda run 然后点击 Ok 然后点击 Apply
    3. 之后我们可以通过点击Tools > External Tools > name_you_provided_for_tomcat 来运行Tomcat

    然后我们必须将我们想要托管的应用程序的必要文件放在 Tomcatwebapps 文件夹中 Tomcat所在的文件夹中> 已安装。

    【讨论】:

      【解决方案2】:

      我认为 maven 没有正确安装。检查 mvn --v

      请检查环境变量中的 Maven 主路径 或者你在安装maven之前已经创建了这个项目

      【讨论】:

        【解决方案3】:

        这个问题已经回答了,但是我在这里写的只是我的观察,以便社区中的其他人可以节省一些时间。 我尝试使用 Intellij 社区版中的嵌入式 tom-cat 运行 spring-mvc 项目。

        我所做的第一次尝试是使用 Gradle tom-cat 插件,但是我遇到的问题是 tomcat 服务器只启动一次,然后从第二次启动构建抱怨说容器已经在运行。 网上有很多关于这个的开放线程,对于一些人来说它有效,对于大多数人来说(几乎 90% 的我打破了我的头的 web 线程,都面临着容器第二次无法启动的相同问题。分辨率不存在。

        在浪费了很多时间之后,我最终决定切换到 maven tom-cat 插件,并使用 maven 进行与 gradle 和 VOILA 相同的 spring-mvc 设置!它在第一个短片中起作用。

        长话短说,如果您在 intellij 社区版中设置 spring-mvc 项目,请考虑使用 maven tomcat 插件。

        希望这有助于某人在各种网络论坛上进行数小时的探索。

        【讨论】:

          【解决方案4】:

          【讨论】:

            【解决方案5】:

            如果你使用 Gradle,你可以试试我的脚本:https://github.com/Adrninistrator/IDEA-IC-Tomcat。这个脚本将为 web 应用程序构建文件,创建一个 Tomcat 实例,启动 Tomcat 并加载 web 应用程序。

            【讨论】:

            • 您的脚本没有 README 文件。请更新您的脚本以帮助其他人开始使用它。
            • 谢谢。我添加了一个 README.md 和一个输出英语的 runTomcat-en.gradle 脚本。
            【解决方案6】:
            VM :-Djava.endorsed.dirs="C:/Program Files/Apache Software Foundation/Tomcat 8.0/common/endorsed" 
                -Dcatalina.base="C:/Program Files/Apache Software Foundation/Tomcat 8.0"  
                -Dcatalina.home="C:/Program Files/Apache Software Foundation/Tomcat 8.0" 
                -Djava.io.tmpdir="C:/Program Files/Apache Software Foundation/Tomcat 8.0/temp" 
                -Xmx1024M
            

            【讨论】:

              【解决方案7】:

              Intellij 社区不提供 Java 应用服务器集成。你的选择是

              1. 购买 Intellij 许可证,
              2. 切换到 Eclipse ;)
              3. 安装Smart Tomcat插件https://plugins.jetbrains.com/plugin/9492
              4. 安装IDEA Jetty Runner插件https://plugins.jetbrains.com/plugin/7505
              5. 从 Maven、Gradle 等运行应用程序服务器,如其他答案中所述。

              我亲自安装了 Jetty Runner 插件(Jetty 对我来说很好,我不需要 Tomcat),我对这个解决方案很满意。不过,我不得不处理IntelliJ idea - Jetty, report an exception

              【讨论】:

              • Smart Tomcat 插件也很方便。
              • 谢谢,Smart Tomcat 更适合多模块 maven 项目。
              • 我尝试在 Intellij 中建立一个使用 Jetty Runner 的项目,但尚未成功,无论我尝试什么 url,我总是遇到 HTTP ERROR 404,我怀疑 Jetty Runner 插件是否正常工作。我还使用 Jetty Runner GitHub 页面的说明尝试了自述文件,但仍然没有运气。你有一个可以与我分享的正在运行的项目吗?
              • SmartTomcat 不允许访问 tomcat 服务器,我们只能访问已部署的 war url。如果部署的实例需要与在同一个 tomcat 上运行的其他服务(其他战争的微服务 - diff 项目)进行通信,这是有问题的。最后,选项 2 对我有用。
              【解决方案8】:

              我用的是林杰的answer。强烈推荐。

              如果您以前从未使用过 Maven 并且不想深入了解它:请遵循 Jay Lin 的回答,但也要这样做:

              1. 右键单击您的项目名称 -> 添加框架支持 -> Maven。

              2. 然后从这里http://maven.apache.org/install.html安装maven。照它说的做,运行命令。

              3. 然后从这里https://mvnrepository.com安装spring-boot。

              4. 如果有任何错误消息,请按照错误消息进行操作 - 也许您需要安装一些其他东西(只需 google 一下,mvnrepository.com 就会出现)。安装使用这个命令:

                mvn install:install-file -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile=path

              path 替换为您下载jar 文件的位置,将版本、组和工件ID 替换为来自mvnrepository.com 的信息。

              1. 我遇到的其他错误:

              我必须在 src/main/java 中创建一个类(在 main 中使用简单的System.out.println 命令)并在pom.xml 中的<properties> 标记中添加<start-class>main.java.Hello</start-class>。顺便说一句,当您从我的回答中执行第一个操作时,pom.xml 应该会出现 - 将 Jay Lin 的代码复制粘贴到那里。

              我遇到的另一个错误与JAVA_HOME 变量和版本有关。为什么它认为 jdk 是第 7 个版本,而我说它是第 8 个版本。所以我把<properties>中的java版本标签改成了<java.version>1.7</java.version>

              现在它工作正常!祝大家好运。

              【讨论】:

                【解决方案9】:

                是的,这是可能的,而且相当容易。

                1. 在运行按钮附近,从下拉菜单中选择“编辑配置...”
                2. 在左侧,单击加号,然后单击 maven 并在右侧将其重命名为“Tomcat”。
                3. 对于命令行,输入“spring-boot:run”
                4. 在运行器选项卡下,对于“VM 选项”,输入“-XX:MaxPermSize=256m -Xms128m -Xmx512m -Djava.awt.headless=true" 注意:“使用项目设置”应取消勾选。
                5. 对于环境变量,输入“env=dev”
                6. 最后,点击确定。

                当您准备好按运行时,如果您转到“localhost:8080/”,您将看到您的页面。

                我的pom.xml文件和官方spring教程一样 Serving Web Content with Spring MVC

                <?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
                    <modelVersion>4.0.0</modelVersion>
                
                    <groupId>org.springframework</groupId>
                    <artifactId>gs-serving-web-content</artifactId>
                    <version>0.1.0</version>
                
                    <parent>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-parent</artifactId>
                        <version>1.4.2.RELEASE</version>
                    </parent>
                
                    <dependencies>
                        <dependency>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-starter-thymeleaf</artifactId>
                        </dependency>
                        <dependency>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-devtools</artifactId>
                            <optional>true</optional>
                        </dependency>
                    </dependencies>
                
                    <properties>
                        <java.version>1.8</java.version>
                    </properties>
                
                
                    <build>
                        <plugins>
                            <plugin>
                                <groupId>org.springframework.boot</groupId>
                                <artifactId>spring-boot-maven-plugin</artifactId>
                            </plugin>
                        </plugins>
                    </build>
                
                </project>
                

                【讨论】:

                • 他要求运行 JavaEE 应用程序而不是 Spring Boot 应用程序。
                • 虽然对于 Spring 启动应用程序来说就像一个魅力。使用这种方法无需安装任何 tomcat 插件。事实上,其他答案中提到的所有 tomcat 插件都不适用于我的 Spring Boot 应用程序。
                【解决方案10】:

                Tomcat 还可以与 IntelliJ Idea - 带有 Tomcat Runner 插件的社区版集成。

                详情如下: https://plugins.jetbrains.com/plugin/8266-tomcat-runner-plugin-for-intellij

                【讨论】:

                • 如何部署战争?
                【解决方案11】:

                Tomcat (Headless) 可以与 IntelliJ Idea - 社区版集成。

                分步说明如下:

                1. 在 pom.xml 中添加tomcatX-maven-plugin

                  <build>
                      <plugins>
                          <plugin>
                               <groupId>org.apache.tomcat.maven</groupId>
                               <artifactId>tomcat7-maven-plugin</artifactId>
                               <version>2.2</version>
                               <configuration>
                                   <path>SampleProject</path>
                               </configuration>
                          </plugin>
                      </plugins>
                  </build>
                  
                2. 添加新的运行配置如下:

                  Run >> Edit Configurations >> + >> Maven
                  
                  Parameters tab ...
                  Name :: Tomcat
                  Working Directory :: Project Root Directory
                  Command Line :: tomcat7:run
                  
                  Runner tab ...
                  VM Options :: <user needed options>
                  JRE :: <project needed>
                  
                3. 直接从 IntelliJ 运行 >> 运行/调试菜单以运行/调试模式调用 Tomcat

                注意:虽然这被认为是使用 IntelliJ 的 Tomcat 集成功能 - 企业版功能的黑客行为,但我认为这是一种将 tomcat 集成到 IntelliJ Idea - 社区版的编程方式。

                【讨论】:

                  【解决方案12】:

                  我正在使用 intellij CE 创建 WAR,并使用 tomcat 部署管理器在外部部署战争。这适用于测试应用程序,但我仍然找不到调试它的方法。

                  1. 打开 cmd 和当前目录到 tomcat/bin。
                  2. 您可以使用批处理文件 start.bat 和 shutdown.bat 启动和停止服务器。
                  3. 现在使用 intellij 中的 mvn 目标构建您的应用。
                  4. 打开 localhost:8080/ **您的端口号可能不同。
                  5. 使用此 tomcat 应用程序部署应用程序,如果遇到身份验证错误,则需要在 conf/tomcat-users.xml 下设置凭据。

                  【讨论】:

                    【解决方案13】:

                    你可以使用带有 gradle 的 tomcat 插件。欲了解更多信息,您here

                    apply plugin: 'tomcat'
                    
                    dependencies {
                        classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:1.2.4'
                    }
                    
                    [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
                    
                    [tomcatRun, tomcatRunWar, tomcatStop]*.stopPort = 8090
                    [tomcatRun, tomcatRunWar, tomcatStop]*.stopKey = 'stfu'
                    tomcatRunWar.contextPath = "/$rootProject.name"
                    tomcatRunWar.ajpPort = 8000
                    
                    if (checkBeforeRun.toBoolean()) {
                        tomcatRunWar { dependsOn += ['check'] }
                    }
                    

                    【讨论】:

                      【解决方案14】:

                      使用 Maven,试试tomcat7-maven-plugin

                        <build>
                                <plugins>
                                    <plugin>
                                        <groupId>org.apache.tomcat.maven</groupId>
                                        <artifactId>tomcat7-maven-plugin</artifactId>
                                        <version>2.2</version>
                                        <configuration>
                                            <path>/</path>
                                            <contextFile>src/main/webapp/WEB-INF/config/app-config.xml</contextFile>
                                            <mode>context</mode>
                                            <charset>UTF-8</charset>
                                            <warDirectory>target/${project.artifactId}-${project.version}</warDirectory>
                                        </configuration>
                                    </plugin>
                                </plugins>
                        </build>
                      

                      使用tomcat7:run-war运行它

                      更多进球here

                      【讨论】:

                      • 我使用“tomcat:run-war -DskipTests”目标和localhost:8080/main地址行,其中main是我的artifactId。但不知道web.xml,它说:[警告]警告:选定的war文件包含将被忽略的WEB-INF/web.xml(war任务中缺少webxml属性,或者ignoreWebxml属性被指定为'真')。
                      • 我想知道为什么它只有在您删除覆盖 标签的 标签时才有效。
                      【解决方案15】:

                      maven 插件和嵌入式 Tomcat 是可用的变通方法(我更喜欢第二个,因为您可以调试),但实际的 Web 服务器集成是仅在 intelij 付费版本中提供的功能。

                      【讨论】:

                        【解决方案16】:

                        对于 Intellij 14.0.0,应用程序服务器选项位于 查看 > 工具窗口 > 应用程序服务器(但如果启用,我的意思是如果您安装了任何插件)

                        【讨论】:

                        【解决方案17】:

                        如果你使用maven,你可以使用这个命令mvn tomcat:run,但是首先你在你的pom.xml中添加这个结构到build标签中,就像这样:

                        <build>
                            <finalName>mvn-webapp-test</finalName>
                              <plugins>
                                  <plugin>
                                      <groupId>org.apache.maven.plugins</groupId>
                                      <artifactId>maven-compiler-plugin</artifactId>
                                      <version>${maven.compiler.plugin.version}</version>
                                      <configuration>
                                          <source>1.6</source>
                                          <target>1.6</target>
                                      </configuration>
                                  </plugin>
                              </plugins>
                          </build>
                        

                        【讨论】:

                        • IntelliJ IDEA 13.1 版本的文件->设置中没有看到“应用程序服务器”选项。如何启用它。
                        • 如果你不使用 Maven 怎么办?
                        • 这个配置是否也支持调试?
                        • @Bhavesh 你实现在 Intellij Idea 社区版中使用 tomchat 了吗?
                        • @Elaman Aitymbet 如果您使用的是 Java8,这可能是您需要的设置:maven.apache.org/plugins/maven-compiler-plugin/examples/…
                        【解决方案18】:

                        是的,你可以使用 maven 插件,或者简单的 java 程序。不需要IDE插件。 参见例如来自https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat的主类

                        【讨论】:

                        • + 非常有用的链接。
                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2015-08-05
                        • 1970-01-01
                        • 2019-08-15
                        • 1970-01-01
                        • 2011-07-31
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多