java.lang.ClassNotFoundException для JAR-файлов, импортированных Maven - PullRequest
0 голосов
/ 31 марта 2019

Я импортировал JSON от Maven, добавив его в POM.XML, файл был загружен в папку «Maven Dependencies», несмотря на то, что проект работает без ошибок и импорт в порядке, появляется ошибка ответа сервера:

"GRAVE: Servlet.service () для сервлета [jsp] в контексте с путем [/ mavenDWP] вызвало исключение [javax.servlet.ServletException: java.lang.NoClassDefFoundError: org / json / JSONObject] с корнем причина java.lang.ClassNotFoundException: org.json.JSONObject "

Изображение: Maven Enviroment

<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>mavenDWP</groupId>
  <artifactId>mavenDWP</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180813</version>
</dependency>
</dependencies>
</project>

Ответы [ 2 ]

0 голосов
/ 31 марта 2019

Первое: ваше объявление зависимостей выглядит хорошо, эта неявная компиляция верна.

Почему вы используете очень старый tomcat7 с jdk10 - я уверен, что эта комбинация больше не поддерживается.

Я предполагаю, что это проблема с настройками вашего проекта eclipse - как настроен путь к классам.пожалуйста, взгляните на настройки пути к классам вашего проекта затмения "mavenDWP".

кстати: в настоящее время ваш проект создает свой путь к классу из двух «источников» - один источник - maven, другой - часть, созданная Eclipse (то, что указано как Apache Tomcat v7.0 в разделе «Библиотеки»". Этот проект никогда не будет работать сам по себе. Возможно, вы сначала попытаетесь создать чистый веб-проект с помощью maven (например, с помощью https://maven.apache.org/archetypes/maven-archetype-webapp/, а затем импортировать его в затмение.

0 голосов
/ 31 марта 2019

Попробуйте добавить <scope>runtime</scope> к вашей зависимости json, чтобы убедиться, что ваш Tomcat или, другими словами, вы можете получить доступ к классам этой зависимости из ваших JSP.В настоящее время он имеет неявную область действия compile.

. Если у вас возникли другие проблемы, подобные этой, пожалуйста, не забудьте также получить хороший обзор дополнительных областей Maven и их семантики .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...