signed Applet 까지 만들었는데 security 어쩌구 에러가 나네요..
서버에서 클라이언트로 데이터 전송해주면 이 데이터를 클라이언트의 로컬 파일로 저장하는 애플릿을 만들었습니다.
signed applet로 만들어줄 필요가 있다길래 keytool, jarsigner 이용해서 signed applet 만들어주고
서버로 업로드해서 실행되는 거 확인하고 여러번 테스트했습니다.
그런데 돌려보는 중에 자꾸 스레드 에러가 나더군요. 그래서 나름 원인을 생각해보고 소스 수정한 다음에
다시 이클립스에서 jar파일 익스포트하고 signing까지 똑같은 과정 다 마쳐준 다음에
서버로 다시 올려봤는데 자꾸 아래와 같은 에러가 나면서 이제는 실행도 안 됩니다 -_-;
소스도 원래대로 다 수정햇는데도 안 되길래 이유를 곰곰히 생각해보니,
프로젝트 폴더 내에, 같이 일하는 사람이 만든 external jar 파일이 포함되어 있는데요.
이 jar 파일이 저장된 폴더가 있습니다. 프로젝트/lib/#$%#.jar 이런 식으로요.
이 폴더 안에 META-INF 이거 있는거를 무심코 지워버렸습니다..(제가 아직 학생이라 잘 모릅니다 ㅠㅠ)
그 뒤로는 프로젝트 자체를 jar파일로 익스포트 할때도, 이상한 거 뜨더군요 -_-;;
지웠다가 뭐했다가 삽질해서 익스포트가 되긴 됩니다만,, 이걸 signing 해서 웹으로 올리면 아래와 같은 에러가 ㅠㅠ
프로젝트를 이클립스로 로드해서보면, 프로젝트 익스플로러에
@@@@.jar
└ META-INF
└ MANIFEST.MF
이런 식으로 표시되어 있긴 한데,, 실제 폴더에 들어가보면 그런 폴더나 파일은 없더라구요
아무래도 메니페스트의 내용이 jar파일 내에 들어있는 거 같긴한데.
저장되어있던 메니페스트 파일 지우면 이런 식의 에러가 생기는건가요 ㅠㅠ
아니면 다른 이유가 있는건지...
딴데서 얼핏 찾다가 java.policy 가 어쩌구저쩌구 그런 내용도잇던데..
java.policy는 jar 파일 만들 때 프로젝트 내에 포함시켜주기만 하면 되는건지 하나도 모르겠네요
도와주세요 ㅠ
===== System Start... =====
local info : @165.132.121.62@00:18:f3:dd:6a:84
이 위의 두 줄은 애플릿 실행시에 콘솔에 뜨게 한 내용이구요. 아래가 에러 내용입니다.
Exception in thread "thread applet-app/base/StartApp.class-2" java.lang.NoClassDefFoundError: app/base/BaseFrame
at app.base.StartApp.init(StartApp.java:47)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: app.base.BaseFrame
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 3 more
Caused by: java.io.IOException: open HTTP connection failed:http://165.132.121.62/app/base/BaseFrame.class
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
클래스를 못찾는거 같은데...
jar 파일을 만들때 매인 클래스를 지정하고 만들었나요?
---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.
http://jihwankim.co.nr
여러 프로그램 소스들이 있습니다.
필요하신분은 받아가세요.
예 메인클레스 지정했어요 ㅎ
처음에 서버에 올려서 웹으로 테스팅 해볼 때는 실행이 됐어요.
근데 실행 중에 프로그램 내에 에러가 있어서, 자꾸 죽길래 디버깅 하고나서
처음에 할 때랑 똑같이 jar 파일을 만들었는데요.
위와 같은 에러가 자꾸 생기더라구요.
그래서 혹시 디버깅을 잘못했나 하고 원래대로 소스 다 바꾼 다음에 jar 파일 만들어도 안되네요 ㅠㅠ
지금 하고 있는 프로젝트 내에 다른 분이 작성한 외부 jar 파일이 있는데,
그 jar파일에 대한 메니페스트 파일을 지운 것 외에는 변경된 내용이 없는데 왜 그런지 모르겠네요 ! 흠냐 -_-;ㅋ
이클립스에서 프로젝트 익스프로러로 보면, 그 외부 jar 파일 내에 메니페스트 내용이 포함되어있는데
아오, 알바뛰는건데요 개강해서 빨리 마무리하야 되는데 죽겠네요 -_-;;
흠냐,,
걍 jar 파일 안 만들고 프로젝트 내에 있는 폴더들 몽땅 올려버리니까 되네요 -_-;
아무래도 path를 못 찾는 거 같습니당...
그냥 이렇게라도 올리면서 디버깅이라도 먼저 해야겟네요 쩝 -0-ㅎㅎ
-----------------------------------------------------------
아 원인 찾앗따.. 별거 아니네요 -_-;
jar 파일로 export할때 warning 뜨는 파일도 export해준다에 체크를 안해놔서 -_-;
제대로 export가 안된 것뿐이엇네요..쩝 -_-;
댓글 달기