在Weblogic 12.1.3上找不到文件metro-default.xml

我们目前正在运行WebLogic 12.1.2。 在这种环境下我们的应用运行良好。

我们现在想要的是将我们的应用程序同步到WebLogic 12.1.3环境。 但我们正面临着我们使用的Web服务的问题。 在新版本中,服务器抛出一个exception,说“未找到”默认配置文件[metro-default.xml]“。

我试图在这个文件上找到一些东西,但什么都没有。

PS:我们不使用Metro,我们使用WebLogic默认的JAX-WS堆栈。 该应用程序部署为WAR文件。

这是exception的堆栈

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.(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.(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) 

我解决了它,所以我添加了jaxws-rt-2.2.8.jar作为我项目的依赖项,并在weblogic-application.xml中写了以下内容:

  com.sun.xml.ws.api.wsdl.parser.*   META-INF/services/javax.xml.ws.* META-INF/services/com.sun.xml.ws.* META-INF/services/com.sun.tools.ws.*  

归功于Thomas Isaksen

我将此metro-default.xml放在我的maven src / main / resources / META-INF中,这导致文件被放置为WEB-INF / classes / META-INF

这里的默认值导致了许多ClassNotFoundExceptions …

(我使用的是Weblogic 12.2.1.0.0)

                              

我们将metro-default.xml放在WEB-INF / classes / META-INF中来解决问题。 该文件的内容可以从这里获取: https : //metro.java.net/guide/ch02.html#dynamic_tube-based_message_logging

随着基于Tube的消息传递的引入,需要jaxws-ri-2.2.8 jar来使任何JAX-WS Web服务工作。

创建一个名为metro-default.xml的xml文件,并将下面的xml内容添加到其中,然后将此metro-default.xml文件放在项目的WEB-INF文件夹中,然后重新启动它将工作的服务器。