2011-04-19 5 views
57

컴파일 된 모드에서 실행하면이 두드러진 GWT 모듈 'mymodule'이 (다시) 대화 상자 메시지를 컴파일해야 할 수 있습니다.GWT 모듈을 다시 컴파일해야 할 수도 있습니다. REDUX

컴파일 된 모드로 실행되는 GWT에서이 오류 메시지를 받았을 때 다른 사람들이 제안한 사항 목록을 컴파일했습니다. maven에서 만든 WAR 파일을 열었으며 모든 파일이 올바른 위치에 있습니다. 이 오류가 발생하지 않는 다른 GWT maven 프로젝트에 대해이를 확인했습니다. 그러나 아래 제안 사항 중 어느 것도 문제를 해결하지 못했습니다. 또한이 두 프로젝트간에 누락 된 차이점을 파악하지 못했습니다. 컴파일 된 모드로 실행되지 않는 작품과 광산입니다. 절름발이 제안

에 오버 riden 하지은 "에서는 user.agent"속성이 도움이되지 않았다?

답변

53

src/main/webapp을 "전쟁 폴더"로 사용하여 DevMode를 시작하셨습니까? 또는 다른 말로하면 src/main/webapp*.nocache.js이 있습니까? 이 경우이 파일은 gwt-maven-plugin에 의해 호출 된 GWT 컴파일러에 의해 생성 된 파일을 덮어 씁니다.

DevMode에 의해 생성 된 (아무도 존재하지 않고 이전 GWT 컴파일에 의해 생성 된) *.nocache.js은 DevMode를 시작하는 데 필요한 비트만을 포함하며 위에서 언급 한 오류로 인해 실패합니다.

+2

좋은 아이디어를 보았습니다. 그렇습니다. 나는 src/main/webapp/WEB-INF/classes를 삭제하기 위해 maven-clean-plugin을위한 추가 설정을 추가했다. 귀하의 제안 후 방금 src/main/webapp/SpringGridGui를 추가 했으므로 처음부터 가지고 있어야합니다. 이 작업 디렉토리를 삭제하는 것이 수정되었습니다. 토마스 감사합니다! –

+3

권장 사항을 따르고 "target/myapp-0.0.1-SNAPSHOT /"를 "war 폴더"로 사용하여 DevMode를 시작하는 것이 좋습니다. http://code.google.com/eclipse/docs/faq.html#gwt_with_maven –

+0

이 링크의 위치 : code.google.com/eclipse/docs/faq.html#gwt_with_maven DevMode의 war 디렉토리 설정에 대해 언급하지 않습니까? – Bizmarck

2

출처를 컴파일 했습니까? 이것은 놀랄만큼 명백하지 않은 단계입니다. Eclipse를 사용하는 경우 빨간색 도구 상자 아이콘을 클릭하여 컴파일 할 수 있습니다.

+0

mvn package 명령은 컴파일 된 모드를 실행하기위한 war를 만듭니다. 나는 결과적인 전쟁을 열었고 mymodule.nocache.html과 * .cache.html –

2

GWT- 컴파일은 maven-package-phase의 일부가 아니므로 mvn clean install package에 추가로 mvn gwt:compile을 실행해야합니다. 이것은 성가신 Javascript- (re) 컴파일 오류를 해결합니다.

+0

mvn gwt입니까? 다음과 같이 컴파일 : 프로젝트 -> Google -> GWT 컴파일? 나는 그것이라고 생각 하느냐? 그렇다면 이것은 내 솔루션 (나는 Maven 패키지를 실행하지 않았다)이었다 ... – cellepo

+0

다른 유사한 질문을 내 비슷한 솔루션을 참조하십시오 자세한 내용 : http://stackoverflow.com/a/35387271/1357094 – cellepo

5

응용 프로그램의 다른 페이지 (예 : myModule2.html)에 대한 정적 링크가있는 경우 DevMode에서 동일한 문제가 발견되었습니다. ? gwt.codesvr = 127.0.0.1 : 9997 문자열이 없기 때문에 정적 인 (이미 컴파일 된) GWT 앱으로 해석되었지만 언급하지 않은 오류 코드가 표시됩니다.

enter image description here

은 물론 솔루션은 하드 코드 된 문자 링크를 사용하지만, GWT는 당신을 위해 그들을 만들 수 있도록 없습니다. 희망은 누군가를 돕습니다.

UPDATE :

이 표준 GWT * .nocache.js 파일에이 오류가 발생합니다 코드입니다.

function B() { 
    var b = false; 
    try { 
    var c = Window.location.search; 
    return (c.indexOf("gwt.hosted=") != -1 
     || (c.indexOf("gwt.codesvr=") != -1 
     || Window.external && Window.external.gwtOnLoad)) 
     && c.indexOf("gwt.hybrid") == -1 
    } catch (a) {} 
    B = function() { 
    return b 
    }; 
    return b 
} 
// and later, if B() returns false, show recompile error 
if (!B()) { 
    try { 
    alert(Pb); 
    return; 
    } 
    ... 
} 

따라서, 컴파일러 메시지

  • 가 URL
  • 에 gwt.hybrid이 없어 gwt.hosted이없는

      을 방지하기 =
    • 또는 get.codesvr =
    • OR 번째의 경우

    그래서 Window.external.getOnLoad 방법 e 팝업으로 인해 일부 서버 코드가 DevMode 세션 URL을 리디렉션했지만 "codesvr ="매개 변수를 다시 추가하지 않았기 때문에 경고가 표시되었습니다.

  • 15

    <MODULE_NAME>.nocache.js이라는 파일을 src/main/webapp/<MODULE_NAME>에 찾고 삭제하거나 이름을 변경하십시오.

    그런 다음 mvn 패키지를 실행하면 모두 '괜찮습니다'.

    이 문제는 Eclipse에서 Dev 모드를 실행할 때 발생할 수 있습니다. Eclipse는 nocache.js 파일을 생성하여 src/main/webapp 디렉토리 아래에 놓습니다. 당신이 mvn pacakge 실행할 때

    그런 다음 받는다는 플러그인은 배포 nocache.js를 작성하고 적절한 장소에 넣습니다,하지만 그 다음 전쟁을에 파일을 패키지를 통해 권리가 작성한 이클립스 배포 nocache.js 때 - 안됐다!

    +0

    This 설명에 도움이 되었어요. 다음을 수행 한 후에이 문제가 발생했습니다. http://stackoverflow.com/a/12430221/320399 – blong

    0

    나는 비슷한 문제가있었습니다. 내 GWT 프로젝트에서 mvn clean install을 수행하면 tomcat에 배포 할 때 동일한 "GWT 모듈 'mymodule'이 (다시) 컴파일 될 필요가있는"대화 메시지가되는 war 파일이 생겼습니다. 나는 또한 모든 성공을 거두지 않고 여기에 언급 된 모든 것을했다.

    Doing mvn clean install -DskipTests=true이 나를 도와주었습니다. 생성 된 테스트 URL 호출하지 않고 mvn clean install을하는
    또는
    (STH를 같은 :. http://<localIp>:53701/mymoduleJUnit.JUnit/junit-standards.html?gwt.codesvr=<localIp>:53697)

    테스트 단계 분명히 덮어했던 나의 처음에 따라서 나에게 잘못된 *.nocache.js 포장, 일부 공상 개발 모드 URL을 통해 *.nocache.js 생성 종료.

    0

    내 Dev 모드가 올바르게 구성되었고 위의 해결 방법이 작동하지 않았습니다. 다음은 비록 문제를 해결했다. MVN GWT Deploy GWT maven project with eclipse deploys webapp directory instead of target/project directory

  • MVN 깨끗한 패키지
  • 를 사용하여> 배포 조립 -

    1. 업데이트 프로젝트 속성 :

      여러 단계 'GWT 컴파일 프로젝트'를 클릭, 일식에서

    2. 컴파일 -> Advacned -> '-war src/main/webapp'인수를 제거하고 컴파일하십시오.

    출력은 다음과 같이해야한다 - 대상/프로젝트-1.0-SNAPSHOT/

    MODULENAME

    에 연결 ... 및 배포 잘 작동합니다.

  • 0

    여기에있는 다른 유효한 답변에도 적용될 수 있습니다. 그 중 하나를 따른 후에 하드/캐시 브라우저 새로 고침 (ctrl + F5)을 수행해야 할 수도 있습니다.

    관련 문제