使用idea2019阶段报的一些错:

1、'xxxServlet' is not assignable to 'javax.servlet.Servlet'

解决方案:把tomcat加入classptah!

2、Error:Internal error: (java.lang.IllegalAccessError) class com.intellij.util.io.FileChannelUtil (in unnamed module @0x15761df8) cannot access class sun.nio.ch.FileChannelImpl (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x15761df8

解决方案:
解决JDK9以上的非法反射访问警告_氷泠的博客-CSDN博客_jdk9 反射

OLP CLI error: java.base does not export sun.security.util to unnamed module under JDK 16

基于以上两个pages等内容,我在虚拟机加了两个参数--illegal-access=permit --add-opens java.base/java.lang=ALL-UNNAMED

我的浅见:出现这个问题,应该是jdk的锅,好像是高版本的jdk不允许使用反射等来访问其一部分的内容,为了安全性

3、Error:Internal error: (java.lang.NoClassDefFoundError) Could not initialize class com.intellij.util.io.FileChannelUtil
[java - Problem with IntelliJ - Cannot run simple Spring Application - Stack Overflow](https://stackoverflow.com/questions/66764737/problem-with-intellij-cannot-run-simple-spring-application)

我的浅见:这是最致命的问题,我无论怎么折腾都是这个问题,我甚至在网路上找不到任何相同的案例。中途我卸载重装了我的idea2019.3.3,卸载重装jdk17,依然无解。最后抱着试一试的心态,卸载idea2019后安装了idea2020,居然就不再报这个错了。

我的浅见:进行项目的搬迁是一件不容易的事,本来我以为可以直接借助idea的重构,就自动完成。没想到后面还是要十几个项目一个个来,在拷贝到别的地方后,每一个都要手动把目录变为模块,添加类库,添加facet,添加artifact,配置tomcat。完成这些只是基本,后面还要面临随时会冒出来的各种报错

更换为idea2020阶段后报的一些错:

1、 org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["ajp-nio-8009"]报错

Problem context:把idea2019换成idea2020后,终于能成功运行之前迁移过来的项目和模块,之前报的错都是网上找不到的。现在模块能运行了,但每次都会出现下面这堆东西

点击查看折叠代码块

27-Mar-2022 11:18:38.675 严重 [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["ajp-nio-8009"]
java.lang.IllegalArgumentException: timeout < 0
at java.base/sun.nio.ch.ServerSocketAdaptor.setSoTimeout(ServerSocketAdaptor.java:162)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:352)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:823)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:476)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:568)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:871)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:592)
at org.apache.catalina.startup.Catalina.load(Catalina.java:615)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:308)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:482)

27-Mar-2022 11:18:38.675 严重 [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[AJP/1.3-8009]]

org.apache.catalina.LifecycleException: Failed to initialize component [Connector[AJP/1.3-8009]]

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)

at org.apache.catalina.core.StandardService.initInternal(StandardService.java:568)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:871)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

at org.apache.catalina.startup.Catalina.load(Catalina.java:592)

at org.apache.catalina.startup.Catalina.load(Catalina.java:615)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:568)

at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:308)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:482)

Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed

at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

... 12 more

Caused by: java.lang.IllegalArgumentException: timeout < 0

at java.base/sun.nio.ch.ServerSocketAdaptor.setSoTimeout(ServerSocketAdaptor.java:162)

at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:352)

at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:823)

at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:476)

at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)

... 13 more

解决方案:把tomcat的conf下的servlet.xml的<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>给注释掉,然后就不报错了。

2、 现在大部分模块能运行了,但有一些模块运行的时候,虽然部署服务成功,但控制台会出现如下错误(以我的模块04_hellojsp为例):

描述:这种错误的一个特点是,虽然访问index.jspbao会500,但对其他的一些资源的访问是正常的

点击查看折叠代码块

27-Mar-2022 14:28:25.695 严重 [http-nio-8080-exec-1] org.apache.jasper.compiler.JDTCompiler$1.findType Compilation error
org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.(ClassFileReader.java:406)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:238)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:210)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:174)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getType(PackageBinding.java:145)
at org.eclipse.jdt.internal.compiler.lookup.Scope.findType(Scope.java:1926)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:3254)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getBinding(Scope.java:2192)
at org.eclipse.jdt.internal.compiler.lookup.BlockScope.getBinding(BlockScope.java:485)
at org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference.resolveType(QualifiedNameReference.java:999)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:636)
at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:1026)
at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:117)
at org.eclipse.jdt.internal.compiler.ast.ForStatement.resolve(ForStatement.java:404)
at org.eclipse.jdt.internal.compiler.ast.Block.resolveUsing(Block.java:130)
at org.eclipse.jdt.internal.compiler.ast.TryStatement.resolve(TryStatement.java:1073)
at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:634)
at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:306)
at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:544)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1195)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1308)
at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:593)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:867)
at org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:550)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:462)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:417)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:485)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:363)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:338)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:325)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:580)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1156)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)

与此同时,首次启动服务器后,跳出的http://localhost:8080/04_hellojsp_war_exploded/也会报错如下

后面如果手动进入http://localhost:8080/04_hellojsp_war_exploded/index.jsp,报错如下:

解决方案:把jsp里面的`System.out.println(i);`的`System.`去掉,因为> jsp中不能用System.out.println()而要用out.println()

<%

for(int i=0;i<10;i++){

//在Java控制台输出

out.println(i);

}

%>

我的疑问:为什么以前没有发现这个问题,现在把项目、模块搬迁了,把idea换为2020,tomcat从8.5.xx换成8.0.52,才发现呢?还是说之前没有问题,现在才有了问题?问题依然没有得到解决,

3、在jsp导入自建类报错:The import XXX cannot be resolved

解决方案:清除缓存,重启idea,<%@ page contentType="text/html;charset=UTF-8" language="java" import="com.com.com.User" %>的User就不爆红了

4、import sun.misc.BASE64Encoder时爆红,以及相关的一系列问题:

IDEA sun.misc.BASE64Encoder报错 - moonsoft - 博客园

解决方案:把代码注释掉,并参照这个page的做法进行修改,改为使用import java.util.Base64。

我的疑问:为什么以前没报错,现在才报错呢?问题依然没有得到解决,
同时在本项目引申出一个新问题:fileItem.write(new File("D:/"+fileItem.getName()));这里如果不给出路径,默认路径是哪里?我没有在工程路径下面找到我想要的结果

5、总结一下后面遇到的其他的小问题,依旧是jsp不能使用sout的问题。其次就是一些琐碎的事情,比如

用ajaxGET的网址,本机名的和localhost居然不同源;

以及有部分的模块需要改一改_war_exploded的后缀(因为之前改过才需要改)

后续:补充一下在早期,在idea上另一个折腾了很久的事情,就是.idea文件夹的不显示。后面的解决方法是,在工程(workspace)里面建一个模块a,在模块a里面再建需要建的各个模块。工程——元模块——模块的嵌套顺序。

最新文章

  1. C++学习准则
  2. Android String操作
  3. 再探Java基础——throw与throws
  4. iOS打包为ipa的两种方式和生成P12证书的方式
  5. Android学习笔记进阶之在图片上涂鸦(能清屏)
  6. requestFocusFromTouch , requestFocus
  7. asp.net 163邮件发送
  8. Docker集群实验环境布署--swarm【2 搭建本地镜像仓库】
  9. java_ 集合
  10. 【C#】组件分享:FormDragger-窗体拖拽器
  11. PF2.1版本总结,在设计过程中遇到的问题以及技术分享
  12. java模拟斗地主发牌看牌
  13. Zip4J最简单用法
  14. Java线程sleep,yield,join,wait方法详解
  15. ubuntu/deepin 下 Sha 哈 dow 哈 socks 全局配置
  16. iOS 计算所有标注的经纬度范围 来确定地图显示区域
  17. 你知道Java的四种引用类型吗
  18. 【详解】Spring Security 之 SecurityContext
  19. struts工作原理(图解)
  20. 2018.10.21 codeforces1071B. Minimum path(dp+贪心+bfs)

热门文章

  1. HTML+CSS+JS制作一个黑灰色简约时钟
  2. PMP学习:弱势乙方如何利用阶段性需求固化搞定甲方
  3. MongoDB 用户及权限增删
  4. Mac下Apache Tomcat安装配置技巧
  5. session共享问题、springboot 版本不统一问题
  6. evalJS代替mui.fire
  7. Java的访问控制修饰符有哪些?各有什么访问权限?请对照第7页ppt的表格分别写程序验证。
  8. redis - 常用方法封装总结
  9. Linux-非Root用户-配置深度学习环境
  10. 安装python及环境搭建