내 J2ME 응용 프로그램에서 예외 (java.lang.securityException not allowed to open connection
)가 표시됩니다. 내 함수의 흐름은 먼저 내가 소켓을 열고 생성자에서 메시지를 수신 한 다음 SMS를 전송한다. 메소드 본문에서 포트를 열고, 내 전화기에서 MIDlet이 SMS를 보낼 수있는 권한을 묻는다. SMS 전송이 거부되지 않았으니 괜찮습니다. 그러나 동일한 MIDlet에있을 때이 작업을 두 번째 수행하면 생성자에서 포트를 수신 할 때 예외가 발생합니다 (java.lang.securityException not allowed to open connection
). 이 시점에서 나는 아직 SMS를 두 번째로 보내달라고 요청하는 허가를 보지 못했습니다. 생성자 및 SMS 전송에 대한 내 코드는 다음과 같습니다.java.lang.securityException 연결을 열 수 없습니다. j2me
//Constructor
public ServerContactRetriever(MainMidlet parent, Language lang) {
try {
this.language = lang;
this.parent = parent;
recvCon = (MessageConnection) Connector.open(RECV_URL); //open receiving port
recvCon.setMessageListener(this);
} catch (Exception ex) {
parent.dispErrorMessage(language.access_denied_disp);
parent.alertShow(language.access_denied_alert);
}
}
//METHOD
//Request restore contacts from server
private void sendRestoreRequest() {
try {
MessageConnection msgCon = (MessageConnection) Connector.open(SEND_URL);
TextMessage msg = (TextMessage) msgCon.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setAddress(SEND_URL);
msg.setPayloadText("set payload here");
msgCon.send(msg);
msgCon.close();
} catch (Exception ex) {
try {
parent.alertShow(language.sms_error_alert);
parent.dispErrorMessage(language.sms_error_disp);
recvCon.close();
} catch (Exception ex1) {
}
}
}
MIDP 2.0에서 WTK를 사용하고 있습니다. Nokia 디바이스를 확인하십시오. 처음에는 MessageConnection
포트를 닫는 문제가있을 수 있었지만 그 역시 시도해 보았습니다. 동일한 오류가 발생했습니다. SMS는 보내고 NO는 선택하는 반면, SMS를 보내고 원하는만큼 여러 번 선택하려고하면 아무런 예외없이 Midlet에 그대로 남아 있으면 정상적으로 작동합니다. 감사합니다.
글쎄 이미 애플 리케이션 내부의 연결을 열었 기 때문에 그걸 제대로 처리하면 제대로 작동했습니다. 하지만 당신이 말하는 것은 그 일과 관련이 없습니다! – Saqib
@Saqib 당신이 어떻게 처리했는지 알려주실 수 있습니까? 메시징 앱에서도 같은 예외가 있습니다. –
두 예외를 모두 명시 적으로 catch해야하지만 일반 EXCEPTION에서는 작동하지 않는 이유를 알지 못합니다. 메시지 포트에 대해 SMS 및 IOException의 SecurityException과 같은 개별 예외 처리를 수행해야했습니다. 희망을 알아낼 수있어! – Saqib