2012-01-14 2 views
2

mvm 부두를 실행 한 후 URL에서 SWF를 시작할 수없는 이유를 이해하려고합니다. 프로젝트에서 실행합니다.WAR 설명자 및 구조 이해 - WAR 내 플렉스 프로젝트

프로젝트가 성공적으로 빌드되어 maven 대상 디렉토리에 팔콘 -WR-0.0.1-SNAPSHOT.war을 생성했습니다. 이 파일에는 다음 파일이 있으며 Flex 프로젝트에서 컴파일 된 .swf 파일이 포함되어 있습니다.

enter image description here

내 web.xml 파일은 매우 간단하며 다음 코드가 포함

내 응용 프로그램의 컨텍스트 루트는 WAR의 이슈 ID와 동일
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     id="WebApp_ID" version="2.5"> 

    <display-name>Falcon Flights</display-name> 

    <welcome-file-list> 
     <welcome-file>Falcon-Flights.swf</welcome-file> 
    </welcome-file-list> 

</web-app> 

를, 그래서 FALCON입니다 -전쟁.

나는 MVN 부두를 실행하면 : 실행, 나는 콘솔에 다음 인쇄 얻을 : 그러나 enter image description here

내 브라우저에 http://localhost:8080/FALCON-WAR로 이동하려고, 나는 내가를 출시 할 것으로 예상 할 때, 다음과 같은 얻을 .swf 파일을 web.xml 정의에서 가져옵니다.

enter image description here

사람은 제가 뭘 잘못 추측 도와 주 시겠어요? 이것은 웹 컨테이너가 .war 구조를 해석하는 방법을 이해하는 것과 더 관련 될 수 있습니다. 그러나 이것은 웹 어플리케이션 개발에서 가장 먼저 떠들썩한 일이며 찌르다가 할 수 있습니다!

미리 감사드립니다.

답변

1

결국 mvn jetty : run = exploded goal을 사용했습니다. 이 목표는 WAR 파일의 빌드 디렉토리 (질문 텍스트의 이미지에서 첫 번째 스냅 샷)를 가리키며 컨텍스트 경로가 유효합니다.

왜 갑판 : run이 올바르게 작동하지 않았는지 아직 확실하지 않지만 제가 가동 중입니다. 도움을 Flextras에

감사합니다 ...

+0

+1 질문에 대한 해결책으로 표시해야합니다. 이 질문에 대한 미래의 사람들을 도울 것입니다. – JeffryHouser

1

나는 부두에 대해 많이 모른다. 하지만 "출력"에서 볼 수있는 것은 웹 서버 디렉토리 목록과 같습니다. 디렉토리에 다른 항목이 있습니까? 웹 루트가 첫 번째 스냅 샷에 표시되는 디렉토리를 가리키고 있습니까? [그렇다면 meta-inf 디렉토리와 falcon-flights 파일은 어디에 있습니까? 당신이 당신의 URL을 변경하는 경우 : 당신에게 404 오류를 부여하거나 제대로로드 않습니다

http://localhost:8080/FALCON-WAR/Falcon-Flights.swf

합니까?

+0

안녕하세요, 그렇습니다. 404 오류가 발생합니다. 그러나 위의 콘솔 스냅 샷을 보면 컨텍스트 경로가/FALCON-WAR로 선언됩니다. 그래서 http : // localhost : 8080/FALCON-WAR을 통해 응용 프로그램의 디렉토리로 이동하게됩니다. – totalcruise

+0

이 디렉토리에는 WEB-INF 폴더 만 나열되어 있습니다. 이 링크를 클릭하면 비어 있습니다. – totalcruise

+0

@totalcruise 웹 서버의 경로가 잘못 구성되어있는 것처럼 들립니다. 잘못된 것들을 가리키고 있습니다. 나는 그것을 고치라고 말하는 법을 모른다. – JeffryHouser

0

이것은 때문에 당신의 Maven 프로젝트의 소스에서 jetty:run 작품. 대상 디렉토리의 디렉토리 목록을 표시 했더라도 SWF가 어떻게 나타나는지 명확하지 않습니다. src/main/webapp 또는 그와 유사하게 유지되는 것이 아니라 WAR 모듈의 종속성을 추측 할 수 있습니다.

jetty:run-exploded은 대상 디렉토리를 먼저 빌드 한 다음 거기에서 응용 프로그램을 실행합니다. 그러므로 이것은 더 잘 작동 할 것입니다.

또 다른 옵션은 jetty:run-war으로, WAR을 빌드하고이를 실행합니다. 그러나 이것은 빌드 단계가 하나 더 적어야하는 jetty:run-exploded보다 느립니다.

자세한 내용은 http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin을 참조하십시오.