CATALINA_HOME = 'C:\Program Files\Apache Software Foundation\Tomcat 7.0
的值
我想将服务器添加到netbeans IDE,但是当我要添加服务器时,我收到一条错误消息,指出config文件夹中的server.xml文件似乎已损坏。我添加了一个屏幕截图,以更好地了解我所面临的错误问题。以及server.xml文件的代码作为文本格式。
<?xml version="1.0" encoding="UTF-8"?>
-<Server shutdown="SHUTDOWN" port="8005">
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
<Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on"/>
<Listener className="org.apache.catalina.core.JasperListener"/>
<Listener
className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener
className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
-<GlobalNamingResources>
<Resource pathname="conf/tomcat-users.xml"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
description="User
database that can be updated and saved"
type="org.apache.catalina.UserDatabase" auth="Container"
name="UserDatabase"/>
</GlobalNamingResources>
-<Service name="Catalina">
<Connector port="8080" redirectPort="8443" connectionTimeout="20000"
protocol="HTTP/1.1"/>
<Connector port="8009" redirectPort="8443" protocol="AJP/1.3"/>
-<Engine name="Catalina" defaultHost="localhost">
-<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
-<Host name="localhost" autoDeploy="true" unpackWARs="true"
appBase="webapps">
<Valve className="org.apache.catalina.valves.AccessLogValve" pattern="%h %l
%u %t "%r" %s %b" suffix=".txt" prefix="localhost_access_log"
directory="logs"/>
</Host>
</Engine>
</Service>
</Server>
答案 0 :(得分:1)
我通过从您的 server.xml 复制单个更改,在工作的Tomcat配置上重现了您的错误:
更改是从 server.xml 屏幕快照中的pattern
元素的<Valve>
属性复制的:
pattern="%h %l %u %t "%r" %s %b"
该值是无效的XML,因为它包含嵌套的引号("%r"
)。
解决方法很简单:将嵌套的引号替换为它们的character entity reference,这样pattern
属性看起来像这样:
pattern="%h %l %u %t "%r" %s %b"
进行更改后,您应该可以添加Tomcat服务器。
p.s。我在您的 server.xml 文件中注意到的另一个不相关的区别是,prefix
元素的<Valve>
属性的值是"localhost_access_log."
,但是Tomcat 9默认是"localhost_access_log"
(无尾随期)。