Кажется, это очень простая проблема, но я не понимаю. Я пытаюсь компьютеризировать хранилище / инвентарь с помощью Java EE, JSP и tomcat (кстати, я француз, заранее извините за языковые ошибки)
Что я здесь пытался сделать:
У меня есть файл Excel (.xls), который выполняет роль базы данных. Я читаю файл .xls и определяю для каждой строки объект ("Outil" в переводе "Инструмент"), как вы можете видеть в "CommandeOutils.java" ("/ WEB-INF / классы / pac / cmd").
package pac.cmd;
import javax.servlet.http.HttpServletRequest;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.*;
import pac.bdd.beans.Outil;
/**CommandeOutils.java*/
public class CommandeOutils implements Commande
{
private final String next;
private static FileOutputStream fos;
private static Row row;
private static Cell cell;
public static Outil[] outil;
public CommandeOutils(String next) {
this.next = next;
}
public String execute(HttpServletRequest req) throws Exception
{
FileInputStream fis = new FileInputStream("C:\\Users\\lomoc\\Desktop\\INVENTAIRE_NOUVEAU_OUTILLAGE.xls");
Workbook wb = WorkbookFactory.create(fis);
Sheet sh = wb.getSheet("listing");
int noOfRows = sh.getLastRowNum();
for (int i = 1; i < noOfRows; i++)
{
if (sh.getRow(i) == null)
{
break;
}
outil[i] = new Outil(sh.getRow(i).getCell(0).getStringCellValue(), (sh.getRow(i).getCell(1).getStringCellValue()),
sh.getRow(i).getCell(2).getStringCellValue(), sh.getRow(i).getCell(3).getStringCellValue(),
sh.getRow(i).getCell(4).getStringCellValue(), sh.getRow(i).getCell(5).getDateCellValue(),
sh.getRow(i).getCell(6).getDateCellValue(), sh.getRow(i).getCell(7).getBooleanCellValue(),
sh.getRow(i).getCell(8).getBooleanCellValue(), sh.getRow(i).getCell(9).getDateCellValue(),
sh.getRow(i).getCell(10).getDateCellValue(), sh.getRow(i).getCell(11).getStringCellValue(),
sh.getRow(i).getCell(12).getStringCellValue(), sh.getRow(i).getCell(13).getStringCellValue(),
sh.getRow(i).getCell(14).getStringCellValue(), sh.getRow(i).getCell(15).getDateCellValue(),
sh.getRow(i).getCell(16).getBooleanCellValue(), sh.getRow(i).getCell(17).getBooleanCellValue());
}
req.setCharacterEncoding("UTF-8");
req.getServletContext().getRequestDispatcher( "/WEB-INF/outils.jsp" );
return next;
}
}
Мой объект "Outil" определен в классе "Outil" ("/ WEB-INF / classes / pac / bdd / beans").
package pac.bdd.beans;
import java.util.Date;
public class Outil
{
private String designation;
private String numInterne;
private String numSerie;
private String marque;
private String classement;
private Date dateAchat;
private Date dateFinDeVie;
private boolean verifInterne;
private boolean verifExterne;
private Date derniereVerification;
private Date prochaineVerification;
private String observation;
private String utilisateur;
private String dateSortie;
private String utilisateurPrecedent;
private Date dateRetour;
private boolean conforme;
private boolean nonConforme;
public Outil(String designation, String numInterne, String numSerie, String marque,
String classement, Date dateAchat, Date dateFinDeVie, boolean verifInterne,
boolean verifExterne, Date derniereVerification, Date prochaineVerification,
String observation, String utilisateur, String dateSortie, String utilisateurPrecedent,
Date dateRetour, boolean conforme, boolean nonConforme)
{
this.designation = designation;
this.numInterne = numInterne;
this.numSerie = numSerie;
this.marque = marque;
this.classement = classement;
this.dateAchat = dateAchat;
this.dateFinDeVie = dateFinDeVie;
this.verifInterne = verifInterne;
this.verifExterne = verifExterne;
this.derniereVerification = derniereVerification;
this.prochaineVerification = prochaineVerification;
this.observation = observation;
this.utilisateur = utilisateur;
this.dateSortie = dateSortie;
this.utilisateurPrecedent = utilisateurPrecedent;
this.dateRetour = dateRetour;
this.conforme = conforme;
this.nonConforme = nonConforme;
}
/*Hidden Getters & Setters*/
}
В "outils.jsp" я просто печатаю for (int i = 0; i < CommandeOutils.outil.length; i++)
в таблице с примером для элемента out.println("<li>" + CommandeOutils.outil[i].getDesignation() + "</li>");
Я компилирую вручную (тот же результат, если я перекомпилирую с помощью Intellij Idea), и я получил это, я уже писал темы об этой проблеме, я много пробовал и не понимаю, я не знаю, проблема ли это компиляции , проблема с пакетом, дерево папок, импорт ...
C:\Users\lomoc\Cours\S4\JSP\webapps\V4_2\WEB-INF>javac classes\pac\cmd\*.java
classes\pac\cmd\CommandeOutils.java:9: error: package pac.bdd.beans does not exist
import pac.bdd.beans.Outil;
^
classes\pac\cmd\CommandeOutils.java:19: error: cannot find symbol
public static Outil[] outil;
^
symbol: class Outil
location: class CommandeOutils
classes\pac\cmd\CommandeOutils.java:37: error: cannot find symbol
outil[i] = new Outil(sh.getRow(i).getCell(0).getStringCellValue(),
(sh.getRow(i).getCell(1).getStringCellValue()),
^
symbol: class Outil
location: class CommandeOutils
3 errors
Заранее спасибо
Я публикую здесь, потому что я нахожусь в контексте Java EE, некоторые правила определены, проблемы во многих случаях разные. Вот не знаю ..
Я мог видеть, что вы компилируете только файлы java в папке classes\pac\cmd\*.java
, это будет компилировать только файлы и не будет компилировать расположение файлов java pac\bdd\beans\
.
Сначала вам нужно скомпилировать расположение java-файлов pac\bdd\beans\
, потому что ваш класс зависит от другого класса, которым является этот пакет, позже попытайтесь скомпилировать файлы java в расположении classes\pac\cmd\
.
проверьте этот
https://stackoverflow.com/a/25706217/3714122
, чтобы исправить ошибкуcannot find symbol
.