Reputation: 2400
Is it possible to run a web application using Tomcat Server in Intellij Idea Community Edition?
I tried to find some information about it but haven't achived any success.
Upvotes: 96
Views: 217662
Reputation: 28929
Intellij Community does not offer Java application server integration. Your alternatives are
I personally installed the Jetty Runner plugin (Jetty is fine for me, I do not need Tomcat) and I am satisfied with this solution. I had to deal with IntelliJ idea - Jetty, report an exception, though.
Upvotes: 70
Reputation: 2800
Using Tomcat 9 in IntelliJ IDEA Community Edition without installing any plugin
Note: Make sure environment variables JAVA_HOME and CATALINA_HOME is set. And in case value for JAVA_HOME or CATALINA_HOME is reset recently then restart IntelliJ IDEA before proceeding further.
File
> Settings...
> Tools
> External Tools
, then click on the + button.jpda run
and then click on Ok and then on Apply.Tools
> External Tools
> name_you_provided_for_tomcat
.Then we have to put the necessary files of the application we want to host on the Tomcat in the webapps folder in the folder where Tomcat is installed.
Upvotes: 4
Reputation: 2475
I think maven is not installed properly. check with mvn --v
or
Please check maven home path in env variables or you have created this project before the installation of maven
Upvotes: 0
Reputation: 453
Well the question is already answered, however what I am writing here is just my observation so other fellows in the community can save some of their time. I tried running a spring-mvc project using the embedded tom-cat in Intellij communit edition.
First try I did was using the Gradle tom-cat plugin, however the problem that I faced there is the tomcat server just starts once, after that from the second start the build complains saying that a container is already running. There are so many open thread on the web about this, for some it works and for most of the people (almost 90% of the web threads that I broke my head with, faced the same problem of container not getting started the second time. The resolution is not there.
After wasting a lot lot of my time, I finally decided to switch to maven tom-cat plugin and do the same spring-mvc setup with maven that I did with gradle and VOILA! it worked in the first short.
So long story short, if you are setting up spring-mvc project in intellij community edition, please consider maven tomcat plugin.
Hope this helps somebody's hours of exploration across various web forums.
Upvotes: 1
Reputation: 1
If you use Gradle, you can try my script: https://github.com/Adrninistrator/IDEA-IC-Tomcat .This script will build files for web application, create a Tomcat instance, start Tomcat and load the web application.
Upvotes: 0
Reputation: 1
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
Upvotes: -2
Reputation: 5176
I used Jay Lin's answer. Highly recommend it.
If you never used Maven before and don't want to go deep into it: follow Jay Lin's answer, but also do this:
right click on your project name -> Add Framework support -> Maven.
Then install maven from here http://maven.apache.org/install.html. Do what it says, run the commands.
Then install spring-boot from here https://mvnrepository.com.
Then follow the error messages if there are any - maybe you would need to install some other stuff (just google it and that mvnrepository.com would come up). To install use this command:
mvn install:install-file -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile=path
replace path
with where you downloaded the jar
file, replace version, group and artifact id with info from mvnrepository.com.
I had to create a class in src/main/java (with simple System.out.println
command in main) and add <start-class>main.java.Hello</start-class>
in <properties>
tag in pom.xml
. Btw, the pom.xml
should appear itself when you do the first action from my answer - copy paste Jay Lin's code there.
Another error I got was connected to JAVA_HOME
variable and the verion stuff. Somewhy it thought jdk is 7th version and I was telling it was 8th. So I changed the java version tag in <properties>
to this <java.version>1.7</java.version>
.
Now it works fine! Good luck everyone.
Upvotes: 0
Reputation: 902
Yes, its possible and its fairly easy.
When you're ready to press run, if you go to "localhost:8080/< page_name > " you'll see your page.
My pom.xml file is the same as the Official spring tutorial 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>
Upvotes: 1
Reputation: 5818
Tomcat can also be integrated with IntelliJ Idea - Community Edition with Tomcat Runner Plugin.
Details below: https://plugins.jetbrains.com/plugin/8266-tomcat-runner-plugin-for-intellij
Upvotes: 4
Reputation: 5818
Tomcat (Headless) can be integrated with IntelliJ Idea - Community edition.
Step-by-step instructions are as below:
Add tomcatX-maven-plugin
to pom.xml
<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>
Add new run configuration as below:
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>
Invoke Tomcat in Run/Debug mode directly from IntelliJ Run >> Run/Debug menu
NOTE: Though this is considered a hacking of using using Tomcat integration features of IntelliJ - Enterprise version features, but I would consider this a programmatic way integrating tomcat to the IntelliJ Idea - community edition.
Upvotes: 7
Reputation: 1246
I am using intellij CE to create the WAR, and deploying the war externally using tomcat deployment manager. This works for testing the application however I still couldnt find the way to debug it.
Upvotes: -1
Reputation: 1825
You can use tomcat plugin with gradle. For more information, you 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'] }
}
Upvotes: 0
Reputation: 3184
Using Maven, try 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>
Run it using tomcat7:run-war
More goals here
Upvotes: 12
Reputation: 159
The maven plugin and embedded Tomcat are usable work-arounds (I like second better because you can debug) but actual web server integration is a feature only available in intelij paid editions.
Upvotes: 1
Reputation: 1
For Intellij 14.0.0 the Application server option is available under View > Tools window > Application Server (But if it is enable, i mean if you have any plugin installed)
Upvotes: -2
Reputation: 536
If you are using maven, you can use this command mvn tomcat:run
, but first you add in your pom.xml this structure into build tag, just like this:
<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>
Upvotes: 42
Reputation: 12521
Yes, you can use maven plugin, or simple java program. No need for IDE plugin. See for example Main class from https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat
Upvotes: 5