2012-01-10 3 views
0

Мы только что обновили наш сервер от Sun, запустив Solaris 9, 32 бит. (установлен в 2005 году) на новый CentOS 5, (linux) на 64 бит.Java: IOException после обновления сервера

Новейшая версия Java - 1.6.0_20 (но мы больше не можем получить доступ к информации о старой версии Java).

Существует часть апплета Java (OPMClient) начинает кинул IOExeption:

import java.applet.*; 
import java.awt.*; 
import java.net.*; 
import java.io.*; 
import java.util.*; 

public class OPMClient extends Applet { 
    ... 
    public static final int PORT = 8888; 
    MineCanvas minecanvas; 
    ... 
    public void clientSend() { 
    try { 
     s = new Socket(this.getCodeBase().getHost(), PORT); 
     in = new DataInputStream(s.getInputStream()); 
     out = new DataOutputStream(s.getOutputStream()); 
     listener = new SolutionListener(in, minecanvas); 
    } 
    catch (IOException e) {e.printStackTrace();} //showStatus("IOException in clientSend()");} 
    ... 
    }   

    public boolean action(Event e, Object arg) { 
    ... 
    if (arg.equals("Submit")) { 
    if (action(null, "Update Grid")) { 
     minecanvas.Submit(); 
    } else { 
     return true; 
    } 
} 
    ... 
} 

class MineCanvas extends Canvas { 
    ... 
    public void Submit() { 
    if (position == -1) { 
     errorString = "No ore has been entered!"; 
     mode = ERROR; 
     repaint(); 
    } else { 
     ComputeGridValue(); 
     parent.clientSend(); 
    } 
} 
    ... 
    } 

Мы пытались понять, почему это происходит, но после нескольких часов работы на этом, но безуспешно. Может ли кто-нибудь помочь нам решить эту проблему? Столбец ниже

java.net.ConnectException: Connection timed out: connect 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.PlainSocketImpl.doConnect(Unknown Source) 
at java.net.PlainSocketImpl.connectToAddress(Unknown Source) 
at java.net.PlainSocketImpl.connect(Unknown Source) 
at java.net.SocksSocketImpl.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at java.net.Socket.<init>(Unknown Source) 
at java.net.Socket.<init>(Unknown Source) 
at OPMClient.clientSend(OPMClient.java:128) 
at MineCanvas.Submit(OPMClient.java:423) 
at OPMClient.action(OPMClient.java:118) 
at java.awt.Component.handleEvent(Unknown Source) 
at java.awt.Component.postEvent(Unknown Source) 
at java.awt.Component.postEvent(Unknown Source) 
at java.awt.Component.postEvent(Unknown Source) 
at java.awt.Component.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$000(Unknown Source) 
at java.awt.EventQueue$1.run(Unknown Source) 
at java.awt.EventQueue$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue$2.run(Unknown Source) 
at java.awt.EventQueue$2.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 
Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException 
at OPMClient.clientSend(OPMClient.java:138) 
at MineCanvas.Submit(OPMClient.java:423) 
at OPMClient.action(OPMClient.java:118) 
at java.awt.Component.handleEvent(Unknown Source) 
at java.awt.Component.postEvent(Unknown Source) 
at java.awt.Component.postEvent(Unknown Source) 
at java.awt.Component.postEvent(Unknown Source) 
at java.awt.Component.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$000(Unknown Source) 
at java.awt.EventQueue$1.run(Unknown Source) 
at java.awt.EventQueue$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue$2.run(Unknown Source) 
at java.awt.EventQueue$2.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 

Будет очень признателен. P.S .: Надеюсь, это не очевидная проблема.

С уважением, Ян

+0

Можете ли вы разместить подробный файл stackTrace? – Manish

+0

Пожалуйста, разместите трассировку стека. –

+0

Изменение 'catch (IOException e) showStatus (« IOException в clientSend() »);' to 'catch (IOException e) e.printStackTrace();' Я не знаю, как вы ожидаете отладки этого с такими неадекватными сообщениями об ошибках , То, что это не пришло вам в голову после нескольких часов работы над ним, вызывает беспокойство. –

ответ

0

Какие конкретные линии бросает IOException? Не могли бы вы не поймать его, чтобы я знал? Строка «s = новый Socket (this.getCodeBase(). GetHost(), PORT); будет выдавать его, если возникла ошибка ввода-вывода при создании сокета, возможно потому, что this.getCodeBase() имеет исключение ввода-вывода (возможно, из-за плохого URL-адреса?). Исключение IO произойдет только во входной части, если возникла ошибка ввода-вывода при создании входного потока, сокет закрыт, сокет не подключен или вход сокета был отключен с помощью shutdownInput(). Аналогично, это произойдет только в выходной части, если возникает ошибка ввода-вывода при создании выходного потока или если сокет не подключен.

+0

ОК, я обновил вопрос, чтобы распечатать stacktrace (см. Выше). Благодаря! – user1140120

+0

Привет! Я выяснил, где проблема: s = new Socket (...), так что это проблема с созданием сокета, а не с потоком вывода. – user1140120

Смежные вопросы