Archivo metro-default.xml no se encuentra en Weblogic 12.1.3

Actualmente estamos ejecutando en WebLogic 12.1.2. Y en este entorno de nuestra aplicación se ejecuta bien.

Lo que queremos ahora es homologar nuestras aplicaciones WebLogic 12.1.3 entornos. Pero estamos frente a un problema con los Servicios Web que utilizamos. En la nueva versión del servidor lanza una excepción diciendo que el “archivo de configuración Predeterminado [ metro-default.xml ] no fue encontrado”.

Estoy tratando de encontrar algo en este archivo, pero no hay nada.

PS: no Tenemos Metro, utilizamos la WebLogic defecto JAX-WS de la pila. Y la aplicación se implementa como un archivo WAR.

Aquí es la pila de la excepción

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)

OriginalEl autor vkrausser | 2014-09-23

4 respuestas

  1. 9

    Lo resuelto por lo que he añadido jaxws-rt-2.2.8.jar como una dependencia a mi proyecto y escribió siguientes a la 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>
    Este será trabajar demasiado. Pero, como no me importaba con JAX-WS RT en esta aplicación, he optado por utilizar la WebLogic pila. Para ello, me he quitado el sun-jaxws.xml archivo de WEB-INF y el WSServletContextListener oyente de web.xml.

    OriginalEl autor Michal

  2. 5

    Todo el crédito a Thomas Isaksen

    Puse esto metro-default.xml en mi maven src/main/resources/META-INF que los resultados en el archivo que se coloca en la WEB-INF/classes/META-INF

    La por defecto aquí causado muchos ClassNotFoundExceptions…

    (Estoy usando 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>

    OriginalEl autor rjdkolb

  3. 1

    Colocamos el metro-default.xml en WEB-INF/classes/META-INF para resolver el problema. Contenido del archivo puede ser tomado de aquí :
    https://metro.java.net/guide/ch02.html#dynamic_tube-based_message_logging

    Como el Tubo de mensajería basada en la que se introduce , jaxws-ri-2.2.8 frascos están obligados a hacer cualquier JAX-WS web de servicios de trabajo.

    Hola! Bien, esto funciona para resolver la falta metro-default.xml archivo, pero sé que no encuentra el tubo de fábricas necesario. Voy a ver si puedo solucionarlo sin la introducción de nuevas dependencias en la aplicación. Algún consejo?
    url roto grepcode.com/file/repo1.maven.org/maven2/org.glassfish.metro/…

    OriginalEl autor swts

  4. 0

    crear un archivo xml denominado metro-default.xml y agregue el siguiente contenido xml en él ,entonces este lugar metro-default.xml el archivo dentro de la WEB-INF de la carpeta de tu proyecto, a continuación, reinicie el servidor va a trabajar.

    <?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>

    OriginalEl autor user10302370

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *