Я разработал веб-приложение, которое позволяет клиенту / пользователю загружать файл в память JVM. Код на стороне сервера затем FTP файл на другой сервер. Все это прекрасно работает на моем локальном компьютере, но сейчас я сталкиваюсь с проблемами, заставляя его работать на наших серверах тестовой среды.
На сервере тестовой среды код успешно подключается и регистрируется на удаленном сервере Windows, но зависает при передаче файла. На конечном сервере создается пустой файл, но байты не передаются. Трассировка стека от JVM, которая в конечном итоге убила поток:
[10/08/11 14:45:24:234 BST] 00000003 ThreadMonitor W WSVR0605W: Thread "WebContainer : 2" (00000033) has been active for 666083 milliseconds and may be hung. There is/are 1 thread(s) in total in the server that may be hung.
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:431)
at java.net.ServerSocket.implAccept(ServerSocket.java:464)
at java.net.ServerSocket.accept(ServerSocket.java:432)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:693)
at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:551)
at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1704)
... (my own app code stack trace from here on down)
Похоже на проблему с сокетом, но кто-нибудь может мне помочь выяснить, на какой машине эта проблема? Это тестовая среда JVM или конечный сервер Windows? Я предполагаю, что это тестовая среда сервера, в противном случае я бы видел эту проблему на моей локальной машине? Если он находится на сервере тестовой среды, это вопрос открытия портов (и если да, то о чем мне просить)? Любая помощь наиболее ценится.