Я скачал jar-файл PDFBox и поместил его в папку {application.home}\lib
. PDFBox имеет несколько других JAR-файлов помощника. Я тоже все поместил в папку {application.home}\lib
. Я перезапустил службу ColdFusion 2016.
В моем файле кода есть несколько очень простых тестовых строк.
<cftry>
<cfset local.pdfUnitObj = CreateObject("java", "org.apache.pdfbox.pdmodel")>
<cfcatch type="any">
<cfdump var="#cfcatch#" output="C:\inetpub\wwwroot\cfcatcherr.txt">
</cfcatch>
</cftry>
В cfcatcherr.txt
я продолжаю получать сообщение об ошибке java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel
В org.apache.pdfbox.pdmodel
есть класс PDDocument. Я пытался ссылаться на org.apache.pdfbox.pdmodel.PDDocuemtn
, но все равно выдает ошибку. Я поместил все эти файлы под {application.home}\jre\lib
и {application.home}\wwwroot\WEB-INF\lib
. Ошибка все та же. Это потому, что я не поместил файл jar в правильное место? Кто-нибудь знает, как я могу решить эту проблему, пожалуйста?
{application.home}
? - person SOS   schedule 12.07.2019org.apache.pdfbox.pdmodel
- это имя пакета, а не класса. Имя класса должно бытьorg.apache.pdfbox.pdmodel.PDDocument
(обратите внимание на написание PDDocument). Кроме того, пожалуйста, опубликуйте полную трассировку стека, а не только первую его строку. - person SOS   schedule 12.07.2019{cf web root}\WEB-INF\lib
. Однако... сказав это, для CF2016 проще пропустить все это и просто загрузить их в свой файл Application.cfc с this.javaSettings а>. - person SOS   schedule 12.07.2019javaSettings
. Гораздо проще зарегистрировать JAR-файлы в базе кода и развернуть их на серверах вместо того, чтобы документировать DevOps, чтобы не забыть поместить JAR-файл X в местоположение Y, если вам нужно обновить или построить новый сервер. - person Adrian J. Moreno   schedule 12.07.2019