org.apache.axis2.dataretrieval.DataRetrievalException: не удалось загрузить из файла, META-INF/ServiceData.xml

У меня та же проблема, что и у laalto - ошибка Axis2 при запуске веб-службы.

Следующее исключение возникает, когда я вызываю веб-службу, хотя служба работает правильно:

06-16@11:46:05 DEBUG DataRetrievalUtil - File does not exist in the Service Repository! File=META-INF/ServiceData.xml [http-bio-8080-exec-9]
    06-16@11:46:05 DEBUG AxisDataLocatorImpl - Check loading failure for file, META-INF/ServiceData.xml.Message = Failed to load from file, META-INF/ServiceData.xml [http-bio-8080-exec-9]
    06-16@11:46:05 DEBUG AxisDataLocatorImpl - Check loading failure for file, META-INF/ServiceData.xml [http-bio-8080-exec-9]
    org.apache.axis2.dataretrieval.DataRetrievalException: Failed to load from file, META-INF/ServiceData.xml
            at org.apache.axis2.dataretrieval.DataRetrievalUtil.buildOM(DataRetrievalUtil.java:64)
            at org.apache.axis2.dataretrieval.AxisDataLocatorImpl.loadServiceData(AxisDataLocatorImpl.java:104)
            at org.apache.axis2.description.AxisService.getDefaultDataLocator(AxisService.java:2949)
            at org.apache.axis2.description.AxisService.getDataLocator(AxisService.java:2933)
            at org.apache.axis2.description.AxisService.getData(AxisService.java:2850)
            at org.apache.axis2.description.AxisService.getWSDL(AxisService.java:1545)
            at org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1355)
            at org.apache.axis2.transport.http.ListingAgent.processListService(ListingAgent.java:198)
            at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:258)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
            at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
            at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
            at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
            at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
            at java.lang.Thread.run(Thread.java:744)
    Caused by: javax.xml.stream.XMLStreamException: File does not exist in the Service Repository! File=META-INF/ServiceData.xml
            at org.apache.axis2.dataretrieval.DataRetrievalUtil.getInputStream(DataRetrievalUtil.java:103)
            at org.apache.axis2.dataretrieval.DataRetrievalUtil.buildOM(DataRetrievalUtil.java:60)
            ... 26 more

Моему проекту веб-сервиса около двух лет, и с тех пор его структура никогда не менялась. Структура:

Webservices.war|-----axis2-web
               |-----META-INF|
                             |------MANIFEST.MF
               |-----WEB-INF |
                             |------web.xml
                             |------sources.....

И никогда не было файла с именем "ServiceData.xml".

Я использую Tomcat 7.0_39 с Axis2 1.5.6. Компонент веб-службы был реализован с помощью Java 1.7.0_21.

Возможно ли, что эта ошибка ранее появлялась, но еще не была зарегистрирована? -Я изменил поведение ведения журнала веб-сервисов с последним развертыванием.

Я нашел несколько советов по переименованию «services.xml» в «ServiceData.xml», но действительно ли это правильное решение?

Заранее спасибо!


person Marc    schedule 16.06.2014    source источник


Ответы (1)


Это решение помогло мне:

Исключение, похоже, не имеет никакого влияния, так как в папке есть services.xml

webapps/WebServices/WEB-INF/services/WebService/META-INF

Поэтому можно игнорировать это исключение. Тем не менее, исключение всегда указывает на ошибку, и поэтому ее следует решить.

Я нашел решение, которое не удовлетворяет, но предотвращает возникновение исключения:

Скопируйте файл services.xml в папку выше и переименуйте его в ServiceData.xml. Исключение никогда не произойдет! Просто разместить пустой файл с именем ServiceData.xml не получится! ServiceData.xml должен содержать ту же информацию, что и файл services.xml!

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

Если есть лучшее решение, пожалуйста, поделитесь здесь!

person Marc    schedule 30.06.2014