我试图理解为什么在启动mvm jetty后无法从URL启动SWF:在我的项目上运行。
该项目已成功构建并在maven目标目录中生成了Falcon-WAR-0.0.1-SNAPSHOT.war。在此文件中包含以下文件 - 并包含从Flex项目编译的.swf文件。
我的web.xml非常简单,包含以下代码:
<?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>
我的应用程序的上下文根与WAR的工件ID相同,因此它是FALCON-WAR。
当我启动mvn jetty:run时,我得到以下打印到控制台:
但是当我尝试在我的浏览器上导航到http://localhost:8080/FALCON-WAR时,我希望从web.xml定义中启动.swf文件时得到以下内容。
任何人都可以帮助我理解我做错了什么吗?这可以让我更多地了解Web容器如何解释.war结构 - 但这是我在Web应用程序开发中的第一次尝试,可以轻松一点!
非常感谢提前。
答案 0 :(得分:1)
我对Jetty不太了解;但是你在“输出”中看到的内容看起来像是一个Web服务器目录列表。目录中是否还列出了其他内容?您确定Web根目录指向您在第一个快照中显示的目录吗? [如果是这样,meta-inf目录和falcon-flights文件在哪里?如果您将URL更改为此内容该怎么办:
这会给你一个404错误,还是正确加载?
答案 1 :(得分:1)
最终我使用了mvn jetty:run =爆炸目标。此目标指向WAR文件的构建目录(问题文本中图像中的第一个快照),然后上下文路径有效。
仍然不确定为什么jetty:run无法正常工作 - 但我已经开始运行了。
感谢Flextras的帮助...
答案 2 :(得分:0)
这是因为jetty:run
来自Maven项目的来源。虽然您已经显示了目标的目录列表,但是您的SWF如何到达并不明显 - 我猜它是WAR模块的依赖关系,而不是src/main/webapp
中的关联或类似的。
jetty:run-exploded
首先构建目标目录,然后从那里运行应用程序。因此,这会更好。
另一个选项是jetty:run-war
,它构建WAR并从中运行应用程序。但是,这将比jetty:run-exploded
慢,这需要少一个构建步骤。
有关详细信息,请参阅http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin。