2015-03-24 2 views
1

Всякий раз, когда я пытаюсь развернуть веб-службы JAX-WS на Tomcat 8, я получаю следующее сообщение об ошибке:Xerces Ошибка при развертывании веб-службы на сервере Tomcat

4-Mar-2015 10:35:35.730 SEVERE [http-nio-8085-exec-5] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener 
com.sun.xml.ws.transport.http.servlet.WSServletException: WSSERVLET11: failed to parse runtime descriptor: java.lang.ClassCastException: org.apache.xerces.parsers.XML11Configuration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:139) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5184) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:455) 
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1496) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 

Даже с ошибкой, я могу развернуть веб-сервис в 20% случаев, но большую часть времени он просто не сможет развернуть.

UPDATE

Как было предложено в комментариях, я перечисляю содержимое WEB-INF \ Lib:

03/09/2015 08:53 AM   62,983 activation-1.1.jar 
03/10/2015 04:43 PM    4,467 aopalliance-1.0.jar 
03/16/2015 07:53 AM   63,966 avalon-framework-4.1.3.jar 
03/16/2015 07:53 AM   21,007 commonj.sdo-2.1.1.jar 
03/16/2015 07:50 AM   232,019 commons-beanutils-1.8.3.jar 
03/16/2015 07:50 AM   284,184 commons-codec-1.10.jar 
03/16/2015 07:48 AM   34,827 commons-csv-1.0.jar 
03/16/2015 07:48 AM   160,519 commons-dbcp-1.4.jar 
03/16/2015 07:48 AM   185,140 commons-io-2.4.jar 
03/10/2015 04:43 PM   284,220 commons-lang-2.6.jar 
03/16/2015 07:50 AM   412,739 commons-lang3-3.3.2.jar 
03/16/2015 07:53 AM   52,915 commons-logging-1.1.jar 
03/16/2015 07:48 AM   96,221 commons-pool-1.5.4.jar 
03/16/2015 07:53 AM   8,613,667 eclipselink-2.5.1.jar 
03/16/2015 07:50 AM   206,853 gson-2.3.jar 
03/16/2015 07:48 AM   31,245 gt-epsg-extension-11.2.jar 
03/16/2015 07:48 AM   1,960,275 gt-epsg-hsql-11.2.jar 
03/16/2015 07:48 AM   505,719 gt-metadata-11.2.jar 
03/16/2015 07:48 AM   345,672 gt-opengis-11.2.jar 
03/16/2015 07:48 AM   1,143,704 gt-referencing-11.2.jar 
03/16/2015 07:48 AM   1,395,415 hsqldb-2.2.8.jar 
03/16/2015 07:48 AM   590,533 httpclient-4.3.5.jar 
03/16/2015 07:48 AM   282,269 httpcore-4.3.2.jar 
03/16/2015 07:50 AM   38,605 jackson-annotations-2.4.0.jar 
03/16/2015 07:50 AM   225,316 jackson-core-2.4.2.jar 
03/16/2015 07:50 AM   1,075,759 jackson-databind-2.4.2.jar 
03/16/2015 07:48 AM   1,900,631 jai_core-1.1.3.jar 
03/16/2015 07:53 AM    2,497 javax.inject-1.jar 
03/16/2015 07:53 AM   162,126 javax.persistence-2.1.0.jar 
03/24/2015 03:59 PM   102,528 jaxb-api-2.2.12-b141001.1542.jar 
03/19/2015 03:32 PM   854,901 jaxb-impl-2.1.7.jar 
03/16/2015 07:53 AM   144,283 jaxb2-basics-runtime-0.9.1.jar 
03/09/2015 08:53 AM   33,428 jaxws-api-2.1.jar 
03/19/2015 03:32 PM   1,284,131 jaxws-rt-2.1.4.jar 
03/16/2015 07:50 AM   16,458 jcl-over-slf4j-1.7.1.jar 
03/16/2015 07:48 AM   11,497 jgridshift-1.0.jar 
03/16/2015 07:50 AM   586,201 joda-time-2.4.jar 
03/16/2015 07:48 AM   54,203 json-smart-1.2.jar 
03/16/2015 07:48 AM   91,347 jsr-275-1.0-beta-2.jar 
03/16/2015 07:48 AM   710,293 jts-1.11.jar 
03/19/2015 03:32 PM   121,658 junit-3.8.jar 
03/16/2015 07:50 AM   489,884 log4j-1.2.17.jar 
03/16/2015 07:53 AM   72,150 logkit-1.0.1.jar 
03/09/2015 09:46 AM   388,864 mail-1.4.jar 
03/19/2015 03:32 PM   38,665 mimepull-1.2.jar 
03/25/2015 10:33 AM   429,408 mojo-MojoGlobal-1.0-SNAPSHOT.jar 
03/20/2015 11:43 AM   75,239 MojoAlerts-1.0-SNAPSHOT.jar 
03/25/2015 10:33 AM   757,460 MojoInterfaces-1.0-SNAPSHOT.jar 
03/25/2015 10:33 AM   571,604 MojoSimulation-1.0.jar 
03/24/2015 02:03 PM   3,389,454 ojdbc6-6.jar 
03/16/2015 07:50 AM   2,097,954 PDFRenderer-0.9.0.jar 
03/09/2015 08:53 AM   68,177 resolver-20050927.jar 
03/09/2015 08:53 AM   18,817 saaj-api-1.3.jar 
03/19/2015 03:32 PM   278,293 saaj-impl-1.3.1.jar 
03/19/2015 03:32 PM   332,055 sjsxp-1.0.1.jar 
03/16/2015 07:53 AM   26,065 slf4j-api-1.7.1.jar 
03/16/2015 07:50 AM    8,867 slf4j-log4j12-1.7.9.jar 
03/16/2015 07:50 AM   337,694 spring-aop-3.2.8.RELEASE.jar 
03/16/2015 07:50 AM   612,569 spring-beans-3.2.8.RELEASE.jar 
03/16/2015 07:50 AM   866,273 spring-context-3.2.8.RELEASE.jar 
03/16/2015 07:48 AM   873,608 spring-core-3.2.8.RELEASE.jar 
03/16/2015 07:50 AM   383,327 spring-data-commons-1.6.1.RELEASE.jar 
03/16/2015 07:50 AM   196,367 spring-expression-3.2.8.RELEASE.jar 
03/16/2015 07:52 AM   405,717 spring-jdbc-3.2.8.RELEASE.jar 
03/16/2015 07:50 AM   374,411 spring-ldap-core-2.0.2.RELEASE.jar 
03/16/2015 07:50 AM   366,941 spring-security-core-3.2.5.RELEASE.jar 
03/16/2015 07:50 AM   242,436 spring-tx-3.2.8.RELEASE.jar 
03/19/2015 03:32 PM   26,310 stax-api-1.0.jar 
03/09/2015 08:53 AM   11,074 stax-ex-1.2.jar 
03/19/2015 03:32 PM   57,984 streambuffer-0.7.jar 
03/16/2015 07:48 AM   249,354 vecmath-1.3.2.jar 
03/26/2015 08:53 AM   895,924 xercesImpl-2.4.0.jar 

UPDATE 2

Изменение версии xercesImpl от 2.4.0 до 2.11.0 (большинство текущих), казалось, разрешало ClassCastException, но сгенерировало следующую ошибку:

INFO: Illegal access: this web application instance has been stopped already. Could not load META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. 
Mar 26, 2015 11:47:43 AM com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized 
SEVERE: WSSERVLET11: failed to parse runtime descriptor: java.lang.NullPointerException 
java.lang.NullPointerException 
    at org.apache.catalina.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1542) 
    at org.apache.xerces.parsers.SecuritySupport$6.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.apache.xerces.parsers.SecuritySupport.getResourceAsStream(Unknown Source) 
    at org.apache.xerces.parsers.ObjectFactory.findJarServiceProvider(Unknown Source) 
    at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source) 
    at org.apache.xerces.parsers.ObjectFactory.createObject(Unknown Source) 
    at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source) 
    at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source) 
    at com.sun.org.apache.xml.internal.resolver.readers.SAXCatalogReader.readCatalog(SAXCatalogReader.java:238) 
    at com.sun.org.apache.xml.internal.resolver.Catalog.parseCatalog(Catalog.java:687) 
    at com.sun.xml.ws.util.xml.XmlUtil.createEntityResolver(XmlUtil.java:270) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.createEntityResolver(DeploymentDescriptorParser.java:402) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:253) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:147) 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:108) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5524) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) 
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:547) 
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1668) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301) 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) 
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1516) 
    at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:912) 
    at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:371) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 

Из того, что я мог собрать, то Illegal access, кажется, по-прежнему связаны с Xerces зависимость

+1

Это пахнет конфликтом в классовом пути с дублирующими баночками. Возможно, у вас есть некоторые несоответствия API/реализации, которые в зависимости от того, какой порядок загрузки Java может работать или не работать. Я бы проверил, какие банки вы развертываете с помощью приложения, возможно, есть некоторые банки Xalan/Xerces, которые конфликтуют с другими (старше?), которые также присутствуют на вашем пути к классу – Gimby

+0

Спасибо за ваш комментарий. Это проект Maven. Я искал конфликтующие банки в 'pom.xml', но не смог найти. –

+1

Рекомендация: перечислите банки в целевом 'WEB-INF/lib' здесь. Возможно, вам придется использовать некоторые исключения в вашем pom (или отметить что-то, как указано). Они могут быть связаны с транзитивными зависимостями, которые находятся в конфликте с системным или родительским загрузчиком классов. –

ответ

0

я получил два Xerces ошибки, связанные, поэтому я отправляю мой подход к решению каждой из них:

ошибка ClassCastException была решена путем обновления до последней версии Xerces:

 <dependency> 
      <groupId>xerces</groupId> 
      <artifactId>xercesImpl</artifactId> 
      <version>2.11.0</version> 
     </dependency> 

Как уже упоминалось в комментариях, убедитесь, что вы удалите все другие связанные Xerces зависимости и оставить просто выше.

Для решения Illegal Access вопроса, я нашел this post с предлагаемым решением, чтобы удалить следующие файлы из xerces-Impl.jar

META-INF/service/javax.xml.parsers.DocumentBuilderFactory

META-INF/services/javax.xml.parsers.SAXParserFactory

Я понимаю, что меняющегося зависимость является хаком и это может иметь неприятные последствия, если файл в локальном репозитории maven удален и повторно загружен с Maven Central, но это было лучшее решение, которое я смог найти.

-2

я решил эту проблему с удалением Xerces-Impl.jar из Lib папки

+0

К сожалению, в моем случае это было не так просто. 'xerces-Impl.jar' является необходимой зависимостью JAX-WS, и удаление его просто вызывает другие ошибки. –

0

У меня была такая же проблема. Я использую gradle для создания моего веб-приложения, развернутого в tomcat. Я определил версию xerces, которая используется с помощью команды «gradle dependencies». Затем я указал в файле build.gradle, что будут предоставлены xerces.

providedCompile "Xerces: xercesImpl: 2.9.1" появляется

проблема будет решена.

Я знаю, что вы можете сделать то же самое в maven, используя предоставленную область.

Смежные вопросы