애플릿 오류 질문입니다.
지음
안녕하세요.
자바애플릿을작성중에문제가발생해서여쭤보려합니다.
코드개발은다했고,애플릿뷰어에서는물론잘동작합니다.
하지만웹페이지에올려서테스트해보면문제가발생하는군요.
코드서명을정상적으로해서올려둔상태이기때문에파일접근이나소켓통신같은문제는아닙니다.
appletname=myAppletcode=BizAppletwidth=400height=500
archive=Applet1.jar,swingx-0.9.3.jar,
org.apache.commons.logging_1.0.4.v20080605-1930.jar,axis.jar,commons-
discovery-0.2.jar,javax.wsdl_1.5.1.v200806030408.jar,jaxrpc.jar,
saaj.jar
/applet
위와같이서버에서애플릿을배치했습니다.웹서버root에모든jar파일을넣었습니다.
애플릿로드는잘됩니다.문제는특정라이브러리를받아와서임포트하려고할때발생하는오류입니다.
다음은그해당오류에대한콘솔로그입니다.
liveconnect:JS메소드호출:document
liveconnect:JS메소드호출:URL
basic:classloader참조:sun.plugin.ClassLoaderInfo@5a9de6,refcount=1
basic:추가된진행수신기:sun.plugin.util.GrayBoxPainter@1faba46
basic:애플릿로딩중...
basic:애플릿초기화중...
basic:애플릿시작중...
basic:completedperfrollup
network:캐시항목이있습니다.[url:http://10.30.1.81/Applet1.jar,버전:null]
network:http://10.30.1.81/Applet1.jar을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/Applet1.jar응답코드:304
network:http://10.30.1.81/Applet1.jar인코딩:null
network:http://10.30.1.81/Applet1.jar과(와)연결끊기
security:C:\PROGRA~1\Java\JRE16~1.0_0\lib\security\cacerts에서루트CA인증서를로드하는중
security:C:\PROGRA~1\Java\JRE16~1.0_0\lib\security\cacerts에서루트CA인증서를로드함
security:C:\Users\crazytazo\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs에서배포인증서를로드하는중
security:C:\Users\crazytazo\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs에서배포인증서를로드함
security:배포세션인증서저장소에서인증서를로드하는중
security:배포세션인증서저장소에서인증서를로드함
security:InternetExplorerROOT인증서저장소에서인증서를로드하는중
security:InternetExplorerROOT인증서저장소에서인증서를로드함
security:InternetExplorerTrustedPublisher인증서저장소에서인증서를로드하는중
security:InternetExplorerTrustedPublisher인증서저장소에서인증서를로드함
security:CertPathAPI를사용하여인증서체인검증
security:루트CA인증저장소에서인증서모음얻기
security:루트CA인증저장소에서인증서모음얻기
security:CRL지원을사용할수없습니다.
security:OCSP지원을사용할수없습니다.
security:사용가능한타임스탬프정보가없습니다.
security:배포거부인증저장소에인증서가있는지확인하기
security:배포영구인증서저장소에인증서가있는지확인하는중
network:캐시항목이있습니다.[url:http://10.30.1.81/swingx-0.9.3.jar,버전:null]
network:http://10.30.1.81/swingx-0.9.3.jar을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/swingx-0.9.3.jar응답코드:304
network:http://10.30.1.81/swingx-0.9.3.jar인코딩:null
network:http://10.30.1.81/swingx-0.9.3.jar과(와)연결끊기
security:배포세션인증서저장소에서인증서를로드하는중
security:배포세션인증서저장소에서인증서를로드함
security:InternetExplorerTrustedPublisher인증서저장소에서인증서를로드하는중
security:InternetExplorerTrustedPublisher인증서저장소에서인증서를로드함
security:CertPathAPI를사용하여인증서체인검증
security:루트CA인증저장소에서인증서모음얻기
security:루트CA인증저장소에서인증서모음얻기
security:CRL지원을사용할수없습니다.
security:OCSP지원을사용할수없습니다.
security:사용가능한타임스탬프정보가없습니다.
security:배포거부인증저장소에인증서가있는지확인하기
security:배포영구인증서저장소에인증서가있는지확인하는중
network:캐시항목이있습니다.[url:http://10.30.1.81/org.apache.commons.logging_1.0.4.v20080605-1930.jar,버전:null]
network:http://10.30.1.81/org.apache.commons.logging_1.0.4.v20080605-1930.jar을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/org.apache.commons.logging_1.0.4.v20080605-1930.jar응답코드:304
network:http://10.30.1.81/org.apache.commons.logging_1.0.4.v20080605-1930.jar인코딩:null
network:http://10.30.1.81/org.apache.commons.logging_1.0.4.v20080605-1930.jar과(와)연결끊기
network:캐시항목이있습니다.&nbs求?[url:http://10.30.1.81/axis.jar,버전:null]
network:http://10.30.1.81/axis.jar을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/axis.jar응답코드:304
network:http://10.30.1.81/axis.jar인코딩:null
network:http://10.30.1.81/axis.jar과(와)연결끊기
network:캐시항목이있습니다.[url:http://10.30.1.81/commons-discovery-0.2.jar,버전:null]
network:http://10.30.1.81/commons-discovery-0.2.jar을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/commons-discovery-0.2.jar응답코드:304
network:http://10.30.1.81/commons-discovery-0.2.jar인코딩:null
network:http://10.30.1.81/commons-discovery-0.2.jar과(와)연결끊기
network:캐시항목이있습니다.[url:http://10.30.1.81/javax.wsdl_1.5.1.v200806030408.jar,버전:null]
network:http://10.30.1.81/javax.wsdl_1.5.1.v200806030408.jar을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/javax.wsdl_1.5.1.v200806030408.jar응답코드:304
network:http://10.30.1.81/javax.wsdl_1.5.1.v200806030408.jar인코딩:null
network:http://10.30.1.81/javax.wsdl_1.5.1.v200806030408.jar과(와)연결끊기
network:캐시항목이있습니다.[url:http://10.30.1.81/jaxrpc.jar,버전:null]
network:http://10.30.1.81/jaxrpc.jar을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/jaxrpc.jar응답코드:304
network:http://10.30.1.81/jaxrpc.jar인코딩:null
network:http://10.30.1.81/jaxrpc.jar과(와)연결끊기
network:캐시항목이있습니다.[url:http://10.30.1.81/saaj.jar,버전:null]
network:http://10.30.1.81/saaj.jar을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/saaj.jar응답코드:304
network:http://10.30.1.81/saaj.jar인코딩:null
network:http://10.30.1.81/saaj.jar과(와)연결끊기
network:캐시항목이있습니다.[url:http://10.30.1.81/META-INF/services/org.xml.sax.driver,버전:null]
network:http://10.30.1.81/META-INF/services/org.xml.sax.driver을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/META-INF/services/org.xml.sax.driver응답코드:200
network:http://10.30.1.81/META-INF/services/org.xml.sax.driver인코딩:null
network:http://10.30.1.81/META-INF/services/org.xml.sax.driver과(와)연결끊기
network:http://10.30.1.81/META-INF/services/org.xml.sax.driver을(를)proxy=DIRECT과(와)연결중
network:자원다운로드:http://10.30.1.81/META-INF/services/org.xml.sax.driver
Content-Length:3,763
Content-Encoding:null
network:파일C:\Users\crazytazo\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\17\587e4ad1-7e5186ee-temp에URLhttp://10.30.1.81/META-INF/services/org.xml.sax.driver쓰기
network:캐시항목이있습니다.[url:http://10.30.1.81/%3c!DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204/0%20Transitional//EN%22%3e.class,버전:null]
network:http://10.30.1.81/%3c!DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204/0%20Transitional//EN%22%3e.class을(를)proxy=DIRECT과(와)연결중
network:http://10.30.1.81/%3c!DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204/0%20Transitional//EN%22%3e.class응답코드:200
network:http://10.30.1.81/%3c!DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204/0%20Transitional//EN%22%3e.class인코딩:null
network:http://10.30.1.81/%3c!DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204/0%20Transitional//EN%22%3e.class과(와)연결끊기
network:http://10.30.1.81/%3c!DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204/0%20Transitional//EN%22%3e.class을(를)proxy=DIRECT과(와)연결중
network:자원다운로드:http://10.30.1.81/%3c!DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204/0%20Transitional//EN%22%3e.class
Content-Length:3,763
Content-Encoding:null
network:파일C:\Users\crazytazo\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\40\16d02a8-403b0721-temp에URLhttp://10.30.1.81/%3c!DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204/0%20Transitional//EN%22%3e.class쓰기
ExceptioninthreadAWT-EventQueue-2java.lang.NoClassDefFoundError:IllegalName:!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.0Transitional//EN
atjava.lang.ClassLoader.preDefineClass(UnknownSource)
atjava.lang.ClassLoader.defineClass(UnknownSource)
atjava.security.SecureClassLoader.defineClass(UnknownSource)
atsun.applet.AppletClassLoader.findClass(UnknownSource)
atjava.lang.ClassLoader.loadClass(UnknownSource)
atsun.applet.AppletClassLoader.loadClass(UnknownSource)
atjava.lang.ClassLoader.loadClass(UnknownSource)
atorg.xml.sax.helpers.NewInstance.newInstance(UnknownSource)
atorg.xml.sax.helpers.XMLReaderFactory.loadClass(UnknownSource)
atorg.xml.sax.helpers.XMLReaderFactory.createXMLReader(UnknownSource)
atDownloadXMLParser.CreateDownloadTree(DownloadXMLParser.java:19)
atBizApplet.actionPerformed(BizApplet.java:64)
atjavax.swing.AbstractButton.fireActionPerformed(UnknownSource)
atjavax.swing.AbstractButton$Handler.actionPerformed(UnknownSource)
atjavax.swing.DefaultButtonModel.fireActionPerformed(UnknownSource)
atjavax.swing.DefaultButtonModel.setPressed(UnknownSource)
atjavax.swing.plaf.basic.BasicButtonListener.mouseReleased(UnknownSource)
atjava.awt.Component.processMouseEvent(UnknownSource)
atjavax.swing.JComponent.processMouseEvent(UnknownSource)
atjava.awt.Component.processEvent(UnknownSource)
atjava.awt.Container.processEvent(UnknownSource)
atjava.awt.Component.dispatchEventImpl(UnknownSource)
atjava.awt.Container.dispatchEventImpl(UnknownSource)
atjava.awt.Component.dispatchEvent(UnknownSource)
atjava.awt.LightweightDispatcher.retargetMouseEvent(UnknownSource)
atjava.awt.LightweightDispatcher.processMouseEvent(UnknownSource)
atjava.awt.LightweightDispatcher.dispatchEvent(UnknownSource)
atjava.awt.Container.dispatchEventImpl(UnknownSource)
atjava.awt.Component.dispatchEvent(UnknownSource)
atjava.awt.EventQueue.dispatchEvent(UnknownSource)
atjava.awt.EventDispatchThread.pumpOneEventForFilters(UnknownSource)
atjava.awt.EventDispatchThread.pumpEventsForFilter(UnknownSource)
atjava.awt.EventDispatchThread.pumpEventsForHierarchy(UnknownSource)
atjava.awt.EventDispatchThread.pumpEvents(UnknownSource)
atjava.awt.EventDispatchThread.pumpEvents(UnknownSource)
atatjava.awt.EventDispatchThread.run(UnknownSource)
맨마지막에보면/META-INF/밑의주소로GET해서404페이지를가져온후에그404페이지의문자열그대로클래스를로드하려시도합니다.
HTTP패킷분석을해봤더니다음과같았습니다.
GET/applet1.htmHTTP/1.1
GET/Applet1.jarHTTP/1.1
GET/swingx-0.9.3.jarHTTP/1.1
GET/org.apache.commons.logging_1.0.4.v20080605-1930.jarHTTP/1.1
GET/axis.jarHTTP/1.1
GET/commons-discovery-0.2.jarHTTP/1.1
GET/javax.wsdl_1.5.1.v200806030408.jarHTTP/1.1
GET/jaxrpc.jarHTTP/1.1
GET/saaj.jarHTTP/1.1
GET/META-INF/services/org.xml.sax.driverHTTP/1.1---------------404!!!!
라이브러리를잘가져오다가마지막에/META-INF라는URL를요청해서(물론웹서버에는없습니다)
404페이지를가져오게됩니다.
이런문제를겪어봤거나의심가는부분이있으시다면답변해주시길부탁드립니다.
개발환경은eclipse3.4,jre1.6입니다.
-
대나무
오.... ddangyabary가 고수라는 소리를 듣다니...^^)b
멋지다!!! ㅎ
ddangyabary!!! 소스 공개하고!! 발표한번 해도~~
imhotk. -
빵야
와~ 축하드립니다.~
-
울트라
고수는요. 자바 처음 해보는 초보자일 뿐입니다.
찬님께서 써주신 글을 차근차근 읽어보고 문제를 해결했습니다.
소중한 시간 할애해주셔서 감사합니다. -
좍좍
XMLReaderFactory의 메소드를 살펴 보니깐,
public static XMLReader createXMLReader(String className) throws SAXException
처럼 className을 바로 줄 수 있는것도 있네요 ^_^;