Error running ‘mytoncat’: address localhost: 8080 is already in use
solve the problem that port 8080 is occupied when starting Tomcat:
run the local command line terminal CMD as an administrator, and enter
netstat - ano | findstr 8080// find the process number occupying the 8080 port number
and then enter:
taskkill/PID 6148 - F// where 6148 is the process number occupied by your local machine
Tag Archives: tomcat
[Solved] Tomcat Startup Error: A child container failed during start
My mistake is different from that mentioned in other posts. I just wrote it wrong
@WebServlet("selectAllServletServlet") missing a /
add
Problem solving.
[Solved] tomcat Run Error: The selected directory is not a TomEE home
Error reason: the Tomcat server was selected incorrectly when configuring the Tomcat server. The Tomcat server should be selected
[Solved] Configuration Error: deployment source ‘xxx:war‘ is not valid
1. Error reporting
2. Cause
The latest artifact is not updated in the Tomcat configuration in the idea configuration.
3. Solution
1. Edit configuration
2. Click deployment to see that war is red. Click the ‘-‘ sign on the right to delete the old war package
3. Add a new artifact
4. OK.
[Solved] Springboot upload failed to find the temporary directory error
The springboot upload failed to find the temporary directory and reported an error
1. Problem description
According to the feedback of online users, the upload file function suddenly reported an error. After checking the log file, the error message is:
failed to parse multipart servlet request; nested exception is java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/undertow.8099.1610110889708131476/undertow1171565914461190366upload
2. Cause investigation
Originally, when launching the spring boot
application through java - jar
in the linux
operating system, a temporary directory will be created by default in the /tmp
directory (in Windows operating system, C:\users\default\appdata\ local\temp
), and the temporary directory is generally in the format of undertow. Port.*
(if the Tomcat
container is Tomcat.Port.*
, this article will take undertow
as an example, and Tomcat
is the same.) , files need to be converted into temporary files and stored here when uploading. However, if the files in the /tmp
directory are not used for more than 10 days, they will be automatically cleaned up by the system. Therefore, the above problems do not occur in the directory when uploading again.
3. Problem recurrence
Since the temporary directory will be created automatically when the service is started, restart the service in the local or test environment, delete the undertow.Port.*
(if Tomcat
, it is Tomcat.Port.*
) directory generated under /tmp
, and upload the file again.
4. Solution
1. Manually create the temporary directory (not recommended)
mkdir -p /tmp/undertow.8099.1610110889708131476/undertow1171565914461190366upload
PS: if the file is not uploaded for more than 10 days again, the same problem will occur. The symptoms are not the root cause.
2. Modify Linux system configuration (not recommended)
vim /usr/lib/tmpfiles.d/tmp.con
# Add at the end of the file, which means that the folder at the beginning of undertow will not be cleaned up
x /tmp/undertow*
PS: if multiple servers are deployed, each server needs to be modified.
3. Modify spring boot configuration file (recommended)
spring:
servlet:
multipart:
# Specify a custom upload directory
location: /mnt/tmp
PS: when using this method, you must ensure that /MNT/tmp
exists. If it does not exist, the same error will occur. Therefore, it needs to be judged every time the service is started. If the directory exists, it will be ignored, and if it does not exist, it will be created. The code is as follows:
@Slf4j
@Configuration
public class MultipartConfig {
@Value("${spring.servlet.multipart.location}")
private String fileTempDir;
@Bean
MultipartConfigElement multipartConfigElement() {
String os = System.getProperty("os.name");
// windows
if(os.toLowerCase().startsWith("win")){
fileTempDir = "C:" + fileTempDir;
}
log.info("fileTempDir:{}", fileTempDir);
MultipartConfigFactory factory = new MultipartConfigFactory();
File tmpDirFile = new File(fileTempDir);
// Determine whether the folder exists
if (!tmpDirFile.exists()) {
//Create folder
boolean mkdirSuccess = tmpDirFile.mkdirs();
log.info("create temp dir,result:{}", mkdirSuccess);
}
factory.setLocation(fileTempDir);
return factory.createMultipartConfig();
}
}
[Solved] Tomcat runs JavaWeb servlet Error 404
Problem description
A new server template project is built with idea. After Tomcat is configured, the access report 404
is accessed
reason
Tomcat cannot load message 404 because war is not loaded
Solution:
An error occurs because the war artifact of this project is not loaded. You need to import this project as a artifact
and then select war_ Compared with war, the structure of the artifact will be consistent with the source directory for easy development
now the URL is the home page of the artifact by default
access
How to Solve java server error (java application Run Normally)
Use Java application to run java server and report errors
The jar package must be copied to Lib
How to Solve AOP error in Spring
Error Messages:
java.lang.NoSuchMethodError: org.springframework.aop.scope.ScopedProxyUtils.isScopedTarget(java/lang/String;)Z
at org.springframework.context.event.EventListenerMethodProcessor.afterSingletonsInstantiated(EventListenerMethodProcessor.java:79)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:781)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.wt.test.AopTest.test1(AopTest.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)。
Solution:
Upgrade the AOP dependency in POM. It must be above version 4.0
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.2.2.RELEASE</version>
</dependency>
[Solved] java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
Error Messages:
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] ....... Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] ...... Caused by: java.lang.ClassCastException: class org.springframework.web.SpringServletContainerInitializer cannot be cast to class javax.servlet.ServletContainerInitializer (org.springframework.web.SpringServletContainerInitializer is in unnamed module of loader org.apache.catalina.loader.WebappClassLoader @1e0295e0; javax.servlet.ServletContainerInitializer is in unnamed module of loader org.codehaus.plexus.classworlds.realm.ClassRealm @3d88e6b9) ......
cause:
I imported the following dependencies in the project’s pom.xml and found that the tomcat7 plugin can’t run
E.g:
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> </dependency>
Check:
1. Check whether the current port is occupied by the process
2. Check whether there is a problem with the servlet mapping URL path in web.xml
3. Check for dependency conflicts
reason:
The servlet dependent version imported in the current Maven configuration file is too high and incompatible with tomcat7
Solution:
The tomcat7 plug-in in pom.xml can be upgraded to tomcat8
reference:
<pluginRepositories> <pluginRepository> <id>alfresco-public</id> <url>https://artifacts.alfresco.com/nexus/content/groups/public</url> </pluginRepository> <pluginRepository> <id>alfresco-public-snapshots</id> <url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url> <snapshots> <enabled>true</enabled> <updatePolicy>daily</updatePolicy> </snapshots> </pluginRepository> <pluginRepository> <id>beardedgeeks-releases</id> <url>http://beardedgeeks.googlecode.com/svn/repository/releases</url> </pluginRepository> </pluginRepositories> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat8-maven-plugin</artifactId> <version>3.0-r1655215</version> <configuration> <port>80</port> <path>/</path> </configuration> </plugin> </plugins> </build>
last:
Refresh the Maven management tool, recompile the Maven project, and then start it with tomcat8!
Solve the java.net.connectexception: connection rejected: connect error
Add the following to the application.yml configuration file:
eureka:
client:
register-with-eureka: false
fetch-registry: false
[Solved] Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred.
Error: could not create the Java virtual machine.
error: a fatal exception has occurred.program will exit
After I reinstalled eclipse, Tomcat reported this error when running JSP
Google has various solutions, some say Java, some say JDK, and some say Tomcat. They can’t use
Solution: just reset a workspace
Tomcat Run Error: Can‘t find catalina.jar [How to Solve]
Error running tomcat: Can’t find catalina.jar
When idea deploys a web project, an error occurs: error running Tomcat: can’t find Catalina. Jar
Solution: the path to configure Tomcat is wrong
just change it to the installation path of Tomcat