Папка WebContent \ WEB-INF \ classes пуста. Путь сборки Java не может найти мои классы - PullRequest
0 голосов
/ 08 июля 2019

У меня ошибка java.lang.ClassNotFoundException. Просто, но я не могу решить это!
Когда я проверил папку

WebContent \ WEB-INF \ классы

Я видел, что это пусто. Это означает, что классы не могут быть построены.
У меня есть проект Maven, и я сделал несколько раз: чистка Maven, установка Maven, но все равно у меня та же ошибка.
Когда я смотрю в мои окна Java Build Path, на вкладке источника я вижу, что папка вывода по умолчанию: MyProject / WebContent / WEB-INF / classes. Также в этом окне флажок: Разрешить выходную папку для исходных папок не отмечен , даже я проверил и применил и сохранил его, когда я запустил проект, он снова автоматически будет отключен. Странный! Кажется, что-то еще переписывает мой путь сборки.

Также вы можете видеть на моих изображениях, что моя сборка веб-развертывания кажется правильной.
Я очищаю сервер Tomcat, очищаю проект и собираю его заново. Но это не помогает.

Мой web.xml на основе изображения иерархии моего проекта:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>SimBio</display-name>
<welcome-file-list>
    <welcome-file>default.html</welcome-file>
</welcome-file-list>
<servlet>
    <servlet-name>SimServlet</servlet-name>
    <servlet-class>simbio.main.SimServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>SimServlet</servlet-name>
    <url-pattern>/SimServlet</url-pattern>
</servlet-mapping>
</web-app>

Я использую Apache Tomcat 7.0, мой проект

HTTP Status 500 - Ошибка при создании экземпляра класса сервлета simbio.main.SimServlet


исключение
javax.servlet.ServletException: Ошибка создания экземпляра класс сервлета simbio.main.SimServlet
первопричина
java.lang.ClassNotFoundException: simbio.main.SimServlet


Что не так с моим проектом. Что еще я должен проверить?
Буду признателен за вашу помощь.

java build path libraries deployment assembely enter image description here

Обновление: В переменных среды у меня есть эти:

JAVA_HOME: C: \ Program Files \ Java \ jre1.8.0_191
JAVA_PATH: C: \ Program Files \ Java \ jre1.8.0_191 \ bin

Update2 Мой pom.xml (это зависит от других проектов, если при запуске этих зависимых проектов Maven возникает ошибка, может ли мой проект получить эффект? На самом деле мой проект устарел, и эти pom.xml ссылаются на какую-то версию, которая не существует)

<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>SimBio</groupId>
<artifactId>SimBio</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.apache.jena</groupId>
        <artifactId>jena-core</artifactId>
        <version>3.5.0</version>
    </dependency>
    <dependency>
        <groupId>org.openrdf.sesame</groupId>
        <artifactId>sesame-model</artifactId>
        <version>2.7.3</version>
    </dependency>
    <dependency>
        <groupId>com.github.sharispe</groupId>
        <artifactId>slib-graph</artifactId>
        <version>0.9.5</version>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>com.github.sharispe</groupId>
        <artifactId>slib-graph-model</artifactId>
        <version>0.9.1</version>
    </dependency>
    <dependency>
        <groupId>com.github.sharispe</groupId>
        <artifactId>slib-utils</artifactId>
        <version>0.9.5</version>
    </dependency>
    <dependency>
        <groupId>com.github.sharispe</groupId>
        <artifactId>slib-tools-sml-toolkit</artifactId>
        <version>0.9.5</version>
    </dependency>
    <dependency>
        <groupId>com.github.sharispe</groupId>
        <artifactId>slib-sml</artifactId>
        <version>0.9.5</version>
    </dependency>
    <dependency>
        <groupId>com.github.sharispe</groupId>
        <artifactId>slib-graph-algo</artifactId>
        <version>0.9.5</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.json</artifactId>
        <version>1.0.2</version>
    </dependency>
</dependencies>

Обновление 3: Я думаю, что моя проблема связана с другими зависимыми проектами (которые их maven в настоящее время не могут быть установлены. У меня есть одна ошибка в моем списке ошибок, которая говорит: путь сборки несовместим. error

1 Ответ

0 голосов
/ 08 июля 2019

Решено!
Не знаю, что именно мне поможет, но я сделал несколько изменений, в целом это решило мою проблему:

  • Когда классы не могут быть построены, возникает ошибка в pom.xml проекта и pom.xml других связанных проектов.
  • Если флажок Разрешить выходные папки для исходных папок не может быть сохранен, это означает, чтопереписывая, поэтому убедитесь, что JAVA_HOME совпадает с настройкой проекта
  • Я также добавляю выходную папку как MyProject / target / classes
  • Я также проверил версию JDK / JRE в моем проектеи другие связанные проекты, а также Tomcat будут такими же.
  • Может также быть вызвана ошибка компиляции в моем классе сервлета: Ошибка создания экземпляра класса сервлета
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...