2013-07-25 5 views
0

저는 1/2 년 전에 실행 중이던 애플릿을 가지고 있습니다. 이제는 더 이상 작동하지 않는 알 수없는 이유로 '재 활성화'해야했습니다. 여기 사양은 다음과 같습니다 NG 애플릿 애플릿이 JNLP와의 작업을 중지했습니다 MissingFieldException <jnlp>

  • 톰캣 7
  • JRE 1.7.0_25
  • 파이어 폭스 (22)와 크롬 (28)
  • 기반

    • JNLP 이것은 내가 오류입니다 :

      MissingFieldException[ The following required field is missing from the launch file: <jnlp>] 
      at com.sun.javaws.jnl.XMLFormat.parse(Unknown Source) 
      at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
      at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
      at com.sun.javaws.jnl.LaunchDescFactory._buildDescriptor(Unknown Source) 
      at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
      at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
      at sun.plugin2.applet.JNLP2Manager.initialize(Unknown Source) 
      at sun.plugin2.main.client.PluginMain.initManager(Unknown Source) 
      at sun.plugin2.main.client.PluginMain.access$200(Unknown Source) 
      at sun.plugin2.main.client.PluginMain$2.run(Unknown Source) 
      at java.lang.Thread.run(Unknown Source) 
      Error while initializing manager: MissingFieldException[ The following required field is missing from the launch file: <jnlp>], bail out 
      

      지금까지 시도했거나 의심되는 것 :

      1. 보안 업데이트 7u17, 7u21 또는 7u25와 함께 도입 된 오라클. 그러나 7u25에서 7u0까지 모든 JRE를 시도했지만 도움이되지 않았습니다. 또한 6u51에서 6u22까지 시도해 봤는데 전에는 잘 했어.
      2. Mozilla 또는 Google이 자바 플러그인과 함께 브라우저의 보안을 강화하기 위해 도입 한 것입니다. 다양한 이전 브라우저 버전을 사용해 보았습니다. 성공하지 못했습니다. 그러나 그때 나는 IE10을 시도하고 그것이 작동하고?!
      3. JNLP 파일 (JaNeLa 포함)을 분석했지만 IE10에서 작동하고 작동하기 때문에 JNLP가 될 수 없습니다. 플러그인은 심지어 JNLP를 분석하지도 않는 것 같습니다.

      아이디어가 있으십니까?

    답변

    2

    그 문제에 대해 거의 이틀을 보낸 후, 나는 그것을 알아 냈고, 다른 사람들을 돕는 것으로 생각했습니다. 설명 : 사용자가 처음 양식 로그인 로그인 할 필요가 보호 된 웹 응용 프로그램의 맥락에서

    1. 내 애플릿 실행됩니다.
    2. 이렇게하면 세션 쿠키가 만들어져 클라이언트/브라우저로 다시 전송됩니다.
    3. tomcat 6에서 tomcat 7로 전환 했으므로 쿠키 용 useHttpOnly policy이 기본적으로 활성화되어 있습니다.이 쿠키는 tomcat 7 이전의 모든 tomcat 버전에서 비활성화되었습니다. HttpOnly 플래그는 브라우저에 JavaScript/플러그인에서 쿠키에 대한 액세스를 차단하도록 지시합니다 (예 : 보안상의 이유로 크로스 사이트 스크립팅 등).
    4. 자바 플러그인이 쿠키에 액세스 할 수 없어서 JNLP 파일을 요청할 때 서버에 보내지 않았습니다.
    5. 서버가 모든 권한없는 요청에 대한 loginpage를 반환합니다.
    6. JNLP 파서가 <jnlp> 구조체를 찾고 있었지만 찾을 수 없었습니다. 위의 오류가 생성되었습니다.

    어떻게 예방할 수 있습니까?

    1. 전 세계적으로
    2. 바람둥이에 useHttpOnly 플래그를 해제 (내가 한 어떤)는 웹 어플리케이션의 useHttpOnly 플래그를 사용하지 않습니다. 그렇게하려면 컨텍스트를 추가하십시오.다음 줄

    지금 왜 IE10은 Http 만 플래그를 무시하는 것 같다
    <Context path="/" cookies="true" useHttpOnly="false"/>가 포함 된 webappication의 META-INF에서 XML 파일 내가 ;-)

    +0

    다른 솔루션과 함께 살 수있는 오픈 질문 . Java 콘솔 임시 파일에서 사용 불가능하게 한 경우, 다시 켜야합니다. 임시 파일을 보관하지 않으면 작동하지 않을 수 있습니다. – Krzysiek