我正在尝试从web应用程序外部的服务器加载图像(和其他静态内容),该服务器被部署到Glassfish v3中。我对web.xml有以下建议,但它不适用于玻璃鱼(但它适用于Tomcat):
<servlet>
<servlet-name>ExternalImagesServlet</servlet-name>
<servlet-class>com.example.servlet.HttpProxyServlet</servlet-class>
<init-param>
<param-name>RemoteURI</param-name>
<param-value>http://ip.of.second.server/website-files</param-value>
</init-param>
<init-param>
<param-name>AllowedContentTypes</param-name>
<param-value>image/gif,image/jpeg,image/png</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ExternalImagesServlet</servlet-name>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>其中ip.of.second.server是服务器的实际IP地址。我将名为website-files.xml的文件定义为:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="d:/internet/website/images" />并将web-files.xml保存到glassfish\domains\domain1\config目录中。但是Glassfish并没有获取这个配置文件。
我看过Oracle Glassfish配置文档,但没有提到如何引用来自不同服务器的映像。
请帮帮忙。
发布于 2011-03-20 15:40:16
经过两天的搜索,我在谷歌上找到了一个与Glassfish版本2有关的旧线程,我已经解决了这个问题。
如果有人对该解决方案感兴趣,请看以下内容:
1)直接在Webcontent\WEB-INF目录下创建一个名为sun-web.xml的文件,并将以下配置添加到该文件中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd">
<sun-web-app>
<property name="alternatedocroot_1" value="from=/images/* dir=d:/internet/website" />
<property name="alternatedocroot_2" value="from=/files/* dir=d:/internet/website" />
</sun-web-app>2)从servlet-mapping web.xml文件中删除servlet和web.xml配置(就像我前面所做的那样)。注意事项:如果您要使用Tomcat,上面的内容将有效。
3)删除website-files.xml目录中的glassfish\domains\domain1\config文件,因为Glassfish不需要此文件:Note:Tomcat需要此文件。
https://stackoverflow.com/questions/5360677
复制相似问题