Mar*_*ais 9 ear glassfish java-ee
我有一个包含两个WAR的EAR文件,war1.war和war2.war.我的application.xml文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<application version="5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd">
<display-name>MyEAR</display-name>
<module>
<web>
<web-uri>war1.war</web-uri>
<context-root>/</context-root>
</web>
</module>
<module>
<web>
<web-uri>war2.war</web-uri>
<context-root>/war2location</context-root>
</web>
</module>
</application>
Run Code Online (Sandbox Code Playgroud)
这导致war2.war在http:// localhost:8080/war2location上可用,这是正确的,但war1.war在http:// localhost:8080 //上 - 注意两个斜杠.
我究竟做错了什么?
请注意,包含在EAR中时会忽略WAR的sun-web.xml文件.
小智 6
在Glassfish 3.0.1中,您可以在管理控制台中定义默认Web应用程序:"Configuration\Virtual Servers\server\Default Web Module".下拉框包含所有已部署的war模块.
然后可以从http:// localhost:8080 /访问默认Web模块.
http://localhost:8080//仍然应该是一个有效的 URL,相当于http://localhost:8080/
我尝试将 war1 的上下文根留空(尽管我不确定这是否允许)。或者将其更改为<context-root>.</context-root>.
否则我不得不说生成的 URI 是 glassfish 的一个错误,因为我从未见过使用 sun 的 URI。