Не удается загрузить файл PDF при использовании сервера веб-просмотра pdftron в локальной сети - PullRequest
1 голос
/ 10 апреля 2020

Я пытаюсь использовать веб-браузер с сервером веб-браузера. У повара ie есть информация о безопасности, которую нужно было передать. В docker -compose задается свойство для пересылки.

 webviewer:
    container_name: webviewer-server
    image: pdftron/webviewer-server:latest
    ports:
      - "8090:8090"
    environment:
#      - INCLUDE_DEMO='true'
      - TRN_FORWARD_CLIENT_COOKIES='true'
      - TRN_DEBUG_MODE='true'

Просмотр журналов с сервера веб-обозревателя, которые получают информацию. Он получает информацию о готовящем поваре ie, чтобы сделать звонок на сервер. Но когда производится калибровка, соединение отклоняется. Вот сообщение об ошибке.

| Creating WS connection at endpoint ...
webviewer-server | 09-Apr-2020 14:38:22.554 INFO [http-apr-8090-exec-2] com.pdftron.server.ConnectionService$WebsocketConnection.<init> Creating WS connection 31204549507251, 1 connections total
webviewer-server | 09-Apr-2020 14:38:22.804 INFO [http-apr-8090-exec-10] com.pdftron.server.BlackBoxMessenger.accessLog 31204549507251 accessing http://localhost:8080/secured/fileContent/2?downloadFile=false for page info
webviewer-server | 09-Apr-2020 14:38:22.805 INFO [http-apr-8090-exec-10] com.pdftron.server.ServerJob.<init> Starting pages: /usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageinfo.json
webviewer-server | 09-Apr-2020 14:38:22.806 INFO [http-apr-8090-exec-10] com.pdftron.server.ServerJob.<init> Starting image: /usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageimg0.jpg
webviewer-server | 09-Apr-2020 14:38:22.806 INFO [pool-2-thread-12] com.pdftron.server.DocReference.fetchLocalBlocking needs_fetch: http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | 09-Apr-2020 14:38:22.807 INFO [pool-2-thread-7] com.pdftron.server.DocReference.fetchLocalBlocking needs_fetch: http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | 09-Apr-2020 14:38:22.807 INFO [pool-2-thread-12] com.pdftron.server.DocManagement.createFetchThread Adding task http://localhost:8080/secured/fileContent/2?downloadFile=falseto fetch queue
webviewer-server | 09-Apr-2020 14:38:22.810 INFO [pool-5-thread-1] com.pdftron.server.DocManagement$DocFetchTask.doFetch Kicking off potential fetch of http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | 09-Apr-2020 14:38:22.810 INFO [pool-5-thread-1] com.pdftron.server.DocManagement.constructConnection setting http://localhost:8080/secured/fileContent/2?downloadFile=false custom header Cookie: Idea-b611af61=fc8272b5-372b-48b6-a200-03b7204be819; fingerprint=e68d8c46-0988-4ac0-9154-1aac1be432b0; access_token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJsY2VyZ2ljK2JAZXJ5Y2UuY29tIiwiY2xpZW50SWQiOiJXRUJfQVBQTElDQVRJT04iLCJ1c2VySWQiOjIsImlzcyI6ImVyeWNlLmNvbSIsImp0aSI6IjkwZDE1ZDBkLTU4ZTctNGM4YS1hMTBlLTdiYjlmZTA1Y2ZhYSIsImlhdCI6MTU4NjQ0Mjg2NSwiZXhwIjoxNTg2NDQzMTY1fQ.zFqrjvEZTwe9QC5azI1HrNG4wbxGrydGdUVli0XmRmf7wv9-KKBFeNsljluz9o7lSXPsAzdrlq5Bhzd3hKk1aw; refresh_token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJsY2VyZ2ljK2JAZXJ5Y2UuY29tIiwiY2xpZW50SWQiOiJXRUJfQVBQTElDQVRJT04iLCJ1c2VySWQiOjIsImlzcyI6ImVyeWNlLmNvbSIsImp0aSI6IjAyYjc4MjRkLTJjMDAtNDRkNi04ZTY2LWM1OGU0NmM4ODE5YiIsImlhdCI6MTU4NjQ0Mjg2NSwiZXhwIjoxNTg2ODc0ODY1fQ.60jj88_lSH_ZngtfAt6EyzfMzZltCTNxLRYHxfGCUrEKd46O6b9bxCSS23_w4vHvecJebYOtpPgUlD0kYLeiHw; JSESSIONID=CB48A60A9DE9EAFBC94F9C4A98089EB3
webviewer-server | 09-Apr-2020 14:38:22.812 WARNING [pool-2-thread-1] com.pdftron.server.ServerJob.run During job id (/usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageimg0.jpg):
webviewer-server | Exception during job run of type image
webviewer-server |  java.lang.Exception: WebViewer Server complete job (/usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageimg0.jpg) failed: unable to complete fetch of http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | Connection refused (Connection refused)
webviewer-server |      at com.pdftron.server.ServerJob.run(Unknown Source)
webviewer-server |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
webviewer-server |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
webviewer-server |      at java.lang.Thread.run(Thread.java:748)
webviewer-server | 09-Apr-2020 14:38:22.812 WARNING [pool-2-thread-4] com.pdftron.server.ServerJob.run During job id (/usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageinfo.json):
webviewer-server | Exception during job run of type pages
webviewer-server |  java.lang.Exception: WebViewer Server complete job (/usr/local/apache-tomcat/static_data/Image/Fetched/4XAIzCDauayBoDmSiovlh4f6tcgVwzeZ4NVrpZjKxUA=2.pdf_dir/pageinfo.json) failed: unable to complete fetch of http://localhost:8080/secured/fileContent/2?downloadFile=false
webviewer-server | Connection refused (Connection refused)
webviewer-server |      at com.pdftron.server.ServerJob.run(Unknown Source)
webviewer-server |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
webviewer-server |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
webviewer-server |      at java.lang.Thread.run(Thread.java:748)
webviewer-server | Closing ws connection from endpoint: CloseReason: code [1001], reason [null]
webviewer-server | 09-Apr-2020 14:39:06.386 INFO [http-apr-8090-exec-4] com.pdftron.server.ConnectionService$Connection.onCloseImpl Closing Connection, 0 outstanding

Теперь часть "? DownloadFile = false" немного вводит в заблуждение, но фактически не останавливает выборку файла. Все сервисы работают на моем локальном хосте. Разумеется, контейнер webviewer работает в контейнере docker, который был запущен с помощью команды docker -compose up. И кажется, что он не может сделать звонок из контейнера в службу localhost. Журнал не отображается в сервисе, Webviewer просто говорит, что в соединении отказано.

С первой попытки я попытался извлечь файлы с помощью массива с тем же URL-адресом, и это сработало. Конечно, в этом случае внешний интерфейс, который также сейчас работает на локальном хосте, мог получить файл, и я мог показать файл на внешнем интерфейсе.

Но как только я добавил сервер, сервер не смог получить доступ к услуге. Кроме того, вот как я настроил чтение файлов во внешнем интерфейсе angular app

const configWebViewer = {
  pdftronServer: serverUrlWithoutPort + ':8090/',
  path: '../../../../../../../../../../assets/webviewer',
  withCredentials: true,
  initialDoc: fileUrl,
}
WebViewer(configWebViewer, this.viewer.nativeElement)

Теперь другое дело, что по какой-то причине в консоли появляется предупреждение о том, что withCredentials не является свойством know .

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

С уважением

1 Ответ

1 голос
/ 10 апреля 2020

Для тех, кто может встретиться здесь в такой же или похожей ситуации, как я. Проблема была, конечно, в «localhost». Все мои сервисы работали в одном и том же docker. Таким образом, они были в той же сети, которую, я думаю, создает для них docker -compose.

Я изменил «localhost» в URL для имени контейнера, например на «myService», как он определен в docker -компонентном файле. Из-за этого сервер веб-обозревателя смог извлечь файл из службы по URL-адресу, который я ему дал.

Эта проблема не должна возникать при развертывании / производстве и тому подобное. Потому что в этом случае вы не все запускаете в localhost и тому подобное.

Это было просто проблемно c в местном, потому что я пытался проверить PdfTron.

Еще одна проблема, которую я еще не решил, заключается в том, что, поскольку я запустил службу в контейнере docker, я не могу отладить эту службу. И, конечно, будут случаи, когда мне нужно будет просмотреть файл в PdfTron и отладить этот сервис.

Но, возможно, способ docker -compose создает сеть, может быть, это то, что я мог бы попробовать. В любом случае, я надеюсь, что это поможет любому, кто сталкивается с этим.

...