2015-08-30 3 views
0

Я все еще стараюсь с моим проектом для моей стажировки, и на этот раз у меня другая проблема, и поскольку я нажимаю со временем (я еще не закончил работу, но не осталось времени) Я не могу не попросить вас о помощи здесь, снова. Спасибо. Итак, у меня есть два проекта: один, чтобы сделать электронную сертификацию файла, а другой - веб-проект, который загружает файл. В этом одном (веб-проекте) загружается страница jsp, 1 сервлет и 1 страница сообщений. Я хочу использовать классы первого проекта в сервлете, я добавил правильный импорт, и я добавил проект 1 в «ссылки на проект» веб-проекта, и два проекта работали значительно по отдельности (я сделал простые тесты загрузки и сертификация, и оба они отлично работали). Это просто, что после загрузки файла успешно я хочу подписать его с помощью 1-го проекта, но я получаю исключение:Проект с использованием другого проекта в java исключает исключение

exception 

javax.servlet.ServletException: L''exécution de la servlet a lancé une exception 

cause mère 

java.lang.NoClassDefFoundError: tn/ance/signature/chargement_fichierp12 
    servlets.UploadServlet.doPost(UploadServlet.java:197) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

Любая помощь будет принята с благодарностью! спасибо большое ^^

вот моя конфигурация для обоих проектов (проект 2, который представляет собой веб-проект использует проект 1 (signature_) в сервлет)

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

+1

Сервлет не может найти класс «chargement_fichierp12». Убедитесь, что этот класс находится в вашем [classpath] (https://docs.oracle.com/javase/tutorial/essential/environment/paths.html), и сервлет использует правильное имя для класса. Также убедитесь, что класс существует, прежде чем пытаться его использовать. –

+0

@FSQ этот класс находится в первом проекте, и я сделал правильный импорт всего этого проекта (import tn.ance.signature.chargement_fichierp12; import tn.ance.signature.signature_doc;) он существует, и он работает (я сделал несколько тестов и использовал тот же код в сервлетах, но когда я использую тот же код в сервлете, он не работает) –

+1

@TaoRinVVHL Просто для уточнения, @FSQ конкретно упомянул путь класса, который не является тем же, что и 'import' заявление. Вы изменили путь к классу, чтобы запустить свою программу? – fdsa

ответ

0

Eclipse exporting JAR in WAR

Здесь объясняется, как вы можете добавить проект в свою сборку развертывания.

Щелкните правой кнопкой мыши на корневом узле динамического веб-проекта и выберите «Свойства» и выберите «Развертывание сборки». Здесь вы можете добавлять проекты (которые переполнены и добавлены в WEB-INF/lib) и отдельные банки в проекте.

+0

Я сделал точно так же, как вы сказали, но это не сработало:/Я положил банку проекта Signature_ в WEB-INF/lib веб-проекта и добавил проект в сборку развертывания. (в разделе «Развертывание», когда я добавляю его, он не похож на файл jar, но появляется только простой проект Signature_, поэтому я помещаю файл jar в WEB-INF/lib вручную) –

+0

Вам не нужно добавлять банку вручную, удалите его и просто добавьте его из сборки развертывания. Я думаю, вам нужно добавить ** lib.zip ** вручную в папку lib, чтобы подпись работала в webapp. – sgpalit

+0

, поэтому я удалил его (для создания файла jar мне нужно только щелкнуть правой кнопкой мыши по проекту, а затем экспортировать, а затем запустить файл jar справа? Причина «jar-файл» только ранее не работала) umm Что такое lib.zib где я нахожу Это? :/Я действительно благодарен за ваше терпение и жаль беспокоить вас TT –