不知何故,如果调用已部署的webapp,我不会使用正确的webaddress获取此内容。如果我在Eclipse中创建.WAR文件 - 访问此webapp的webadress始终是.WAR文件的名称。
例如,如果我的文件名是myapp.war
我可以使用类似http://adress:9999/myapp
的东西现在我看到一些其他的webapps,warfile名称和url是不同的。如果部署了webapp但你不知道webapp的名称会怎样,因为它与.war文件名不同?
要回答你的问题,
What if the webapp is deployed but you dont know the name of the webapp,
because it´s different from the .war file name?
您将无法找到WAR。就如此容易。
与你的问题无关,但让我详细说明这是如何发生的。以...为例一个使用Maven进行依赖关系管理的Web应用程序。
maven中有一个标记,可以指定它来设置可用于访问应用程序的应用程序的最终名称。
pom.xml
<groupId>com.test</groupId>
<artifactId>testWar</artifactId>
<name>testWar</name>
<packaging>war</packaging>
这段代码告诉maven将应用程序构建为testWar.war
。
现在,您可以指定在设置时如何访问应用程序:
<finalName>mycontextpath</finalName>
然后您的finalName用于“部署”,您可以通过访问您的webapp
http://localhost:8080/mycontextpath/
默认情况下,几乎所有的Web服务器都使用artifactID
作为部署路径,但您可以指定使用finalName
,例如使用Jetty
插件时:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<contextPath>${build.finalName}</contextPath>
</configuration>
</plugin>
希望能帮助到你。 :)
如果你想手动链接webapp文件夹,比如Tomcat,你可以这样做。我使用此方法直接从项目开发文件夹运行webapps。易于更改或同时运行多个版本,编辑jsp + html + js文件可以立即在浏览器中刷新。生产部署是mywebapp.war打包并上传到j2ee服务器。
tomcat的/ conf目录/卡塔利娜/本地主机/ mywebapp.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="C:/projects/mywebapp/web_v3.1"
reloadable="true" crossContext="true" >
</Context>
并浏览以解决http://localhost:8080/mywebapp/
或者在context.xml文件中给出path属性,可以在同一个文件中使用docBase和path。
tomcat的/ conf目录/卡塔利娜/本地主机/ myapp2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="C:/projects/myapp2/web" path="/myapp"
reloadable="true" crossContext="true" >
</Context>
并浏览以解决http://localhost:8080/myapp/
该路径称为“上下文路径”,它不依赖于您的war文件名。
基本上,在Web领域部署Web应用程序时,您会遇到一个显示“Context Root”的屏幕。您应该提供您喜欢的任何名称,主要是应用程序名称。现在,这成为您的Web应用程序访问的路径。例如如果您将'stocktrade'作为上下文根,那么您可以访问http://localhost/stocktrade/index.html
。
对于weblogic服务器,您可以定义与web.xml并行的weblogic.xml。此文件应定义应用程序的上下文根。
对于JBOSS服务器,可以使用jboss.xml。您可以在Internet上搜索相应的文件。