java - Tomcat 应用程序为 WEB-INF/lib 中的 Jar 抛出 java.lang.ClassNotFoundException
问题描述
我正在尝试添加 Boilerpipe 来对我的 Tomcat 项目进行网络抓取,但是当我这样做时,我往往会遇到问题。我将 jar 以及必要的资源(nekohtml-1.9.13.jar 和 xerces-2.9.1.jar)添加到我的 Web-INF/lib 文件夹并作为项目结构中的外部库。
但是,每次我尝试部署应用程序时,我都会java.io.ClassNotFoundException
从 Tomcat 构建一段时间,但我不知道为什么。具体来说,Tomcat 告诉我访问被拒绝,但我不知道这可能意味着什么,因为它很容易访问同一文件夹中的其他 Jar。
这是Tomcat错误的完整堆栈跟踪
Error:Internal error: (java.io.FileNotFoundException) C:\Users\micro\IdeaProjects\Spectral_Phasor_Experimentation\out\artifacts\Spectral_Phasor_Experimentation_war_exploded\WEB-INF\lib\boilerpipe-1.2.0.jar (Access is denied)
java.io.FileNotFoundException: C:\Users\micro\IdeaProjects\Spectral_Phasor_Experimentation\out\artifacts\Spectral_Phasor_Experimentation_war_exploded\WEB-INF\lib\boilerpipe-1.2.0.jar (Access is denied)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:292)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:235)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:185)
at com.intellij.openapi.util.io.FileUtil.openOutputStream(FileUtil.java:436)
at com.intellij.openapi.util.io.FileUtil.performCopy(FileUtil.java:405)
at com.intellij.openapi.util.io.FileUtil.copyContent(FileUtil.java:399)
at org.jetbrains.jps.incremental.FSOperations.copy(FSOperations.java:413)
at org.jetbrains.jps.incremental.artifacts.instructions.FilterCopyHandler.copyFile(FilterCopyHandler.java:40)
at org.jetbrains.jps.incremental.artifacts.instructions.FileBasedArtifactRootDescriptor.copyFromRoot(FileBasedArtifactRootDescriptor.java:87)
at org.jetbrains.jps.incremental.artifacts.IncArtifactBuilder.build(IncArtifactBuilder.java:160)
at org.jetbrains.jps.incremental.artifacts.IncArtifactBuilder.build(IncArtifactBuilder.java:50)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildTarget(IncProjectBuilder.java:1034)
at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1015)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1071)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:965)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:794)
at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:376)
at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:178)
at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:139)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:288)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:121)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:228)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)
Please perform full project rebuild (Build | Rebuild Project)
我还在某处读到,在 WEB-INF/lib 文件夹中复制 Tomcat 的现有库是不好的,但我不确定我是否这样做了。这是我的 lib 文件夹中的内容:(其中大部分是由 IntelliJ 自动导入的)
javax.annotation.jar
javax.ejb.jar
javax.jms.jar
javax.persistence.jar
javax.resource.jar
javax.servlet.jar
javax.servlet.jsp.jar
javax.servlet.jsp.jstl.jar
javax.transaction.jar
joda-time-2.10.5.jar
jstl-1.2.jar
mysql-connector-java-5.1.48-bin.jar
taglibs-standard-jstlel-1.2.5.jar
任何帮助将不胜感激。
谢谢。
解决方案
推荐阅读
- json - 我想在 POSTMAN 中使用 JSON 文件声明响应正文
- c# - 无法创建资源目录路径 Azure
- python - 如何获取焦点窗口的名称?
- android - 如果(条件)更改按钮中的图标
- xamarin.forms - 如何从后台线程更新 Ui - xamarin?
- azure-devops - 从存储库中的现有 YML 文件创建新管道 (Azure Pipelines)
- ios - Realm Swift嵌套递归列表未正确保存数据
- javascript - 调整浏览器大小时,引导导航栏不起作用
- php - $_POST 可以读取但值不是
- java - 根据内部映射之外的键对嵌套映射中的值求和