我在tomcat-7.0.62 \ conf \ server.xml中有一个GlobalNamingResource:
<GlobalNamingResources>
<Resource
name="jdbc/postgresDB"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/someDB"
username="someUser"
password="somePassword"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" />
</GlobalNamingResources>
和主机配置:
<Host name="localhost" deployXML="false">
在tomcat-7.0.62 \ conf \ context.xml中,我有一个到全局JNDI资源的ResourceLink:
<ResourceLink global="jdbc/postgresDB" name="jdbc/postgresDB" type="javax.sql.DataSource"/>
启动tomcat时,我得到以下异常:
jaan 04, 2017 2:35:20 PM org.apache.tomcat.util.digester.Digester endElement
SEVERE: End event threw exception
java.lang.NullPointerException
at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:847)
at org.apache.catalina.startup.SetNextNamingRule.end(SetNextNamingRule.java:104)
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1060)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
...
jaan 04, 2017 2:35:20 PM org.apache.catalina.startup.ContextConfig processContextConfig
SEVERE: Parse error in context.xml for /host-manager
org.xml.sax.SAXParseException; systemId: .../apache-tomcat-7.0.62/conf/context.xml; lineNumber: 25; columnNumber: 69; Error at (25, 69) : null
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2705)
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2737)
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1063)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
...
lineNumber: 25; columnNumber: 69;
直接位于context.xml中ResourceLink标记的末尾。
使用配置我设法通过删除deployXML =&#34; false&#34;来摆脱异常。来自server.xml主机标记的属性。以前在tomcat 7.0.42上使用相同的设置。
我不明白为什么它在7.0.62中不起作用,如果我希望deployXML属性为false,我该如何在7.0.62中执行此操作。 我应该如何定义ResourceLinks(如本例中的数据库连接),以在同一个tomcat实例中的多个webapps之间共享资源。