2012-01-10 2 views
0

방금 ​​Solaris 9, 32 비트를 실행하는 Sun에서 서버를 업데이트했습니다. (2005 년에 설치)를 64 비트로 새 CentOS 5 (Linux)에 설치했습니다.Java : 서버 업데이트 후 IOException

최신 Java 버전은 1.6.0_20입니다 (단, 이전 버전의 Java에 대한 정보는 더 이상 액세스 할 수 없음).

는 IOExeption을 던졌다에 시작하는 Java 애플릿 (OPMClient)의 일부가 :

우리는 성공하지, 이런 일이 왜 내야하지만,이 작업의 시간 후에 시도
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 .:이 문제가 명백한 문제가 아니길 바래요.

감사합니다 당신은 연

+0

자세한 stackTrace를 게시 할 수 있습니까? – Manish

+0

스택 추적을 게시하십시오. –

+0

catch (IOException e) showStatus ("clientSend()");'catch (IOException e) e.printStackTrace();'이렇게 잘못된 부적절한 오류보고로 어떻게 디버그 할 것인지 모르겠습니다. . 이것이이 문제를 해결하기 위해 '몇 시간'후에 일어난 일이 아니라는 것은 걱정스러운 일입니다. –

답변

0

어느 특정 라인은 IOException가 슬로우? 내가 알아 듣지 못하게하려고 할 수 있니? "s = new 소켓 (this.getCodeBase(). getHost(), PORT);" 아마도 this.getCodeBase()에 I/O 예외 (어쩌면 잘못된 URL 때문에)가 있었기 때문에 소켓을 만들 때 I/O 오류가 발생했을 때 던져 버릴 것입니다. IOException은 입력 스트림을 생성하거나 소켓이 닫혀 있거나 소켓이 연결되어 있지 않거나 shutdownInput()을 사용하여 소켓 입력이 종료 된 경우 I/O 오류가 발생한 경우에만 입력 스트림 부분에서 발생합니다. 마찬가지로 출력 스트림을 만들 때 또는 소켓이 연결되어 있지 않은 경우 I/O 오류가 발생하는 경우에만 출력 스트림 부분에서 발생합니다.

+0

좋아, stacktrace (위 참조)를 인쇄하는 질문을 업데이 트했습니다. 감사! – user1140120

+0

안녕하세요. 문제가 어디 있는지 알게되었습니다 : s = new Socket (...) 그래서 출력 스트림이 아닌 소켓을 만드는 것이 문제입니다. – user1140120

관련 문제