2014-09-23 2 views
9

В настоящее время мы работаем на WebLogic 12.1.2. И в этой среде наше приложение работает нормально.Файл metro-default.xml не найден на Weblogic 12.1.3

Теперь мы хотим омологизировать наши приложения в средах WebLogic 12.1.3. Но мы сталкиваемся с проблемой использования веб-сервисов, которые мы используем. В новой версии сервер выдает исключение, говоря, что «Файл конфигурации по умолчанию [metro-default.xml] не найден».

Я пытаюсь найти что-то в этом файле, но ничего нет.

PS: Мы не используем Metro, мы используем стек JAX-WS по умолчанию для WebLogic. И приложение развертывается как WAR-файл.

Вот стопка, за исключением

java.lang.IllegalStateException: MASM0001: Default configuration file [ metro-default.xml ] was not found 
    at com.sun.xml.ws.assembler.MetroConfigLoader.init(MetroConfigLoader.java:142) 
    at com.sun.xml.ws.assembler.MetroConfigLoader.<init>(MetroConfigLoader.java:119) 
    at com.sun.xml.ws.assembler.TubelineAssemblyController.getTubeCreators(TubelineAssemblyController.java:122) 
    at com.sun.xml.ws.assembler.MetroTubelineAssembler.createServer(MetroTubelineAssembler.java:173) 
    at com.sun.xml.ws.server.WSEndpointImpl.<init>(WSEndpointImpl.java:193) 
    at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:337) 
    at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:332) 
    at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:164) 
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:577) 
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:560) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:303) 
    at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:179) 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131) 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:152) 
    at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:678) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) 
    at weblogic.servlet.internal.EventsManager.executeContextListener(EventsManager.java:243) 
    at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:200) 
    at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:185) 
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1838) 
    at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2876) 
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1661) 
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:823) 
    at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360) 
    at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
    at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138) 
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:216) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:211) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
    at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:73) 
    at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:24) 

ответ

6

Я решил так, что я добавил JAXWS-RT-2.2.8.jar как зависимость от моего проекта и написал следующее в WebLogic-application.xml:

<wls:prefer-application-packages> 
    <package-name>com.sun.xml.ws.api.wsdl.parser.*</package-name> 
</wls:prefer-application-packages> 
<wls:prefer-application-resources> 
    <wls:resource-name>META-INF/services/javax.xml.ws.*</wls:resource-name> 
    <wls:resource-name>META-INF/services/com.sun.xml.ws.*</wls:resource-name> 
    <wls:resource-name>META-INF/services/com.sun.tools.ws.*</wls:resource-name> 
</wls:prefer-application-resources> 
+1

Это тоже сработает. Но, поскольку я не заботился об использовании JAX-WS RT в этом приложении, я решил использовать стек WebLogic. Для этого я удалил файл sun-jaxws.xml из WEB-INF и слушателя WSServletContextListener из web.xml. – vkrausser

1

Мы разместили метро-DEFAULT.XML в WEB-INF/классы/META-INF, чтобы решить эту проблему. Содержимое файла можно взять здесь: https://metro.java.net/guide/ch02.html#dynamic_tube-based_message_logging

Как вводится трубка обмена сообщениями на основе, JAXWS-ри-2.2.8 банки обязаны делать какие-либо JAX-WS веб-служб работы.

+0

Здравствуйте! Ну, это работает, чтобы решить отсутствующий файл metro-default.xml, но знаю, что он не находит требуемые фабрики труб. Я посмотрю, смогу ли я исправить это, не введя новые зависимости от приложения. Какие-нибудь советы? – vkrausser

+0

url broken http://grepcode.com/file/repo1.maven.org/maven2/org.glassfish.metro/metro-config-impl/2.1/META-INF/metro-default.xml –

4

Все кредита в Thomas Isaksen

Я поместил это метро-dEFAULT.XML в моей Maven SRC/главная/ресурсы/META-INF, который приводит в файл помещаются WEB-INF/классы/META-INF

default здесь вызвал много C lassNotFoundExceptions ...

(я использую Weblogic 12.2.1.0.0)

<?xml version="1.0" encoding="UTF-8"?> 
    <metro xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
    xmlns='http://java.sun.com/xml/ns/metro/config' 
    version="1.0"> 
    <tubelines default="#default-metro-tubeline"> 
     <tubeline name="default-metro-tubeline"> 
      <client-side> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.TerminalTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.HandlerTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.ValidationTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.MustUnderstandTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.MonitoringTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.AddressingTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.rx.rm.runtime.RmTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.dump.MessageDumpingTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.TransportTubeFactory" /> 
      </client-side> 
      <endpoint-side> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.TransportTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.dump.MessageDumpingTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.AddressingTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.rx.rm.runtime.RmTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.MonitoringTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.MustUnderstandTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.HandlerTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.ValidationTubeFactory" /> 
       <tube-factory className="com.sun.xml.ws.assembler.jaxws.TerminalTubeFactory" /> 
      </endpoint-side> 
     </tubeline> 
    </tubelines> 
</metro> 
Смежные вопросы