(Внимание: вы жестко программируете "Brochure.pdf"
и полностью игнорируете filePath
в своем цикле. Я предполагаю, что вы намеревались присоединить каждое значение filePath
.)
Как вы можете видеть в документации для метода attachFile аргумент String должен быть допустимым именем файла.
Преобразование байтов в InputStream в строку, безусловно, не приведет к имени файла.
Ресурс в .jar не является файлом. Это часть файла .jar, а не отдельный файл.
Вам нужно будет вручную установить содержимое и имя файла MimeBodyPart вместо использования attachFile:
URL content = GenericMailClient.class.getResource("/" + filePath);
attachPart.setDataHandler(new DataHandler(content));
URI uri = content.toURI();
String path = uri.getPath();
String fileName = path.substring(path.lastIndexOf('/') + 1);
attachPart.setDisposition(Part.ATTACHMENT);
attachPath.setFileName(fileName);
( Не пытайтесь использовать метод URL getFile ()). Метод getFile () не будет не возвращать правильное имя файла, поскольку URL-адрес не будет URL-адресом file:
, а также потому, что символы, которые не допускаются непосредственно в URL-адресах (например, пробелы), будут быть в процентах. С другой стороны, класс URI правильно анализирует компоненты URI и возвращает их неэкранированные формы.)
Вот некоторые, я регулярно использую
Большой список здесь http://opensourcegis.org/
Другой большой список: OSGeo является сотрудничеством для поддержки геопространственного программного обеспечения с открытым исходным кодом.
http://sharpmap.codeplex.com для мира .NET. Мы не находимся под OSGeo, таким образом, Вы не найдете нас там.
Вот другие ресурсы:
AS MARKJ Указанные OSGEO.ORG также является обязательным установителем.