准确地说,我需要从外部目录中获取图片:C:/MWDB
。
我找到了这个链接:How to config Tomcat to serve images from an external folder outside webapps?我想跟进你需要在server.xml context
标签中添加目录的部分。
所以基本上基于它说我带来的方式它应该是:
<Context docBase="C:/MWDB" path="/images" reloadable="true" source="org.eclipse.jst.jee.server:Duck"/>
(请求:www.example.com/images/image.png)以这种方式重新启动服务器时会弹出一个错误说
localhost上的服务器遇到了问题
然后我这样做了:<Context docBase="C:/MWDB" path="/images"/>
而且我甚至无法访问我的index.html文件
FULL server.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Server port="20011" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources>
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector connectionTimeout="20000" port="20012" protocol="HTTP/1.1" redirectPort="8443"/>
<Connector port="20013" protocol="AJP/1.3" redirectPort="8443"/>
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context docBase="C:/MWDB" path="/images" reloadable="true" source="org.eclipse.jst.jee.server:Duck"/></Host>
</Engine>
</Service>
</Server>
我正在使用Java 8,Apache Tomcat v9.0
答案 0 :(得分:0)
好的,我发现了我的问题。
基本上我不知道的是,你可以同时拥有多个<context>
。
所以当我有类似的东西时:
<Context docBase="C:/MWDB" path="/images"/>
我只能从MWDB目录而不是我的内部项目服务器,这就是我无法访问我的index.html文件的原因。因此,对于来自两个目录的服务器,您可以这样做:
<Context docBase="C:/MWDB" path="/images" reloadable="true" source="org.eclipse.jst.jee.server:Duck"/>
<Context docBase="C:/MWDB" path="/images"/>
到目前为止完美地工作:)