Datahub JNDI Tomcat限制-默认的DataSource查找不使用Java命名空间

2020-09-07 21:59发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)这不仅仅是一个错误报告或用户帮助...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


这不仅仅是一个错误报告或"用户帮助",而不仅仅是一个问题

由于我们使用的是tomcat的全新版本(> Mai 2018),因此在启动默认的datahub-webbapp(v1808,v6.7)时遇到了一些麻烦/麻烦。

5月份对tomcat进行了更改,请参见此处: https://lists.apache.org/thread.html/383c60d50a3947ac18e1bf475dcd76f9ea0349e5dc2e7c6470e6c2f9@%3Cdev.tomcat.apache.org%3E

从现在开始(如果我错了,请纠正我),在datahub的web.xml中使用的此类查找名称必须使用显式的Java命名空间:"查找名称值必须显式引用 java:名称空间,但[datahub]却没有"

JDK8和tomcat 7.0.82都可以。 这是使用" datahub-webapp-18.08.0-RC5.war"(或更旧版本)以及tomcat 7.0.90和8.5.32(相同的例外)的例外情况:

  2018年8月17日14:10:3​​0.810信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR部署Web应用程序存档[/customer/app/apache-tomcat-8.5  .32/webapps/datahub.war]
      17-Aug-2018 14:10:3​​3.138 SCHWERWIEGEND [localhost-startStop-1] org.apache.tomcat.util.digester.Digester.endElement结束事件引发异常
       java.lang.reflect.InvocationTargetException
              在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
              在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              在java.lang.reflect.Method.invoke(Method.java:498)
              在org.apache.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:395)
              在org.apache.tomcat.util.digester.CallMethodRule.end(CallMethodRule.java:427)
              在org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1020)
              在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
              在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
              在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2967)
              在com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
              在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
              在com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
              在com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
              在com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
              在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
              在com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl $ JAXPSAXParser.parse(SAXParserImpl.java:643)
              在org.apache.tomcat.util.digester.Digester.parse(Digester.java:1521)
              在org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml(WebXmlParser.java:119)
              在org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1104)
              在org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:765)
              在org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
              在org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
              在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
              在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
              在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
              在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
              在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
              在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
              在org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1857)
              在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)
              在java.util.concurrent.FutureTask.run(FutureTask.java:266)
              在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
              在java.lang.Thread.run(Thread.java:748)
      原因:java.lang.IllegalArgumentException:查找名称值必须显式引用java:命名空间,但[datahub]不能
              在org.apache.tomcat.util.descriptor.web.ResourceBase.setLookupName(ResourceBase.java:99)
      ...跳过...
              在java.lang.Thread.run(Thread.java:748)
      原因:java.lang.IllegalArgumentException:查找名称值必须显式引用java:命名空间,但[datahub]不能
              在org.apache.tomcat.util.descriptor.web.ResourceBase.setLookupName(ResourceBase.java:99)
              ...另外35个
      
      2018年8月17日14:19:24.844 SCHWERWIEGEND [localhost-startStop-1] org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml解析应用程序web.xml文件中的错误,位于[文件:/customer/app/apache-tomcat-8.5.32/webapps/datahub/WEB-INF/web.xml]
       org.xml.sax.SAXParseException;  systemId:文件:/customer/app/apache-tomcat-8.5.32/webapps/datahub/WEB-INF/web.xml;  lineNumber:45;  columnNumber:37; 错误发生于(45,37):查找名称值必须显式引用java:命名空间,但[datahub]不能
              在org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:1971)
              在org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2003)
              在org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1023)
              在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
              在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
              在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2967)
              在com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
              在com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
              在com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
              在com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
              在com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
              在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
              在com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl $ JAXPSAXParser.parse(SAXParserImpl.java:643)
              在org.apache.tomcat.util.digester.Digester.parse(Digester.java:1521)
              在org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml(WebXmlParser.java:119)
              在org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1104)
              在org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:765)
              在org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
              在org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
              在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
              在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
              在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
              在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
              在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
              在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
              在org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1857)
              在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)
              在java.util.concurrent.FutureTask.run(FutureTask.java:266)
              在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
              在java.lang.Thread.run(Thread.java:748)
      原因:java.lang.IllegalArgumentException:查找名称值必须显式引用java:命名空间,但[datahub]不能
              在org.apache.tomcat.util.descriptor.web.ResourceBase.setLookupName(ResourceBase.java:99)
              在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
              在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              在java.lang.reflect.Method.invoke(Method.java:498)
              在org.apache.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:395)
              在org.apache.tomcat.util.digester.CallMethodRule.end(CallMethodRule.java:427)
              在org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1020)
              ...另外28个
      
      2018年8月17日14:19:24.845 SCHWERWIEGEND [localhost-startStop-1] org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml发生在第[45]行[37]
      17-Aug-2018 14:19:24.906 SCHWERWIEGEND [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.configureStart将这个应用程序标记为由于先前的错误而不可用
      17-Aug-2018 14:19:24.915 SCHWERWIEGEND [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal一个或多个组件将上下文标记为未正确配置
      17-Aug-2018 14:19:24.930 SCHWERWIEGEND [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [/datahub]启动因先前的错误而失败
 


  
4条回答
SAP小菜
2020-09-07 22:20 .采纳回答

嗨,

您可以通过更新tomcat/webapps/datahub-webapp/web-inf/web.xml文件中的web.xml文件来解决此问题。

您需要替换

   datahub  java:d​​atahub 


  

一周热门 更多>