2016-07-04 399 views
3

我最近設置了一個新的Weblogic 12c環境。在部署我知道在Weblogic 11g中工作的應用程序時,出現錯誤「Web應用程序中的url-pattern/resources/*映射到多個Servlet。」Weblogic升級到12c:部署失敗,因爲URL映射到多個servlet

它引用的映射是多數民衆贊成正在部署的application.ear內的web.xml中,但它只是映射一次:

<servlet-mapping> 
    <servlet-name>velocity</servlet-name> 
    <url-pattern>/resources/*</url-pattern> 
    </servlet-mapping> 

該項目不包含在URL其他任何引用pattern/resources/*,有人可以解釋重複映射的來源以及我如何解決它?

我能找到的最接近的問題是:https://bugster.forgerock.org/jira/si/jira.issueviews:issue-html/OPENAM-7947/OPENAM-7947.html,它被標記爲不可重複。從部署

完整堆棧跟蹤:

<Error> <Deployer> <BEA-149205> <Failed to initialize the application "<application_name>" due to error weblogic.application.ModuleException: weblogic.management.DeploymentException: [HTTP:101401]The url-pa 
ttern /resources/* in web application <application_name> is mapped to multiple Servlets. 
weblogic.application.ModuleException: weblogic.management.DeploymentException: [HTTP:101401]The url-pattern /resources/* in web application <application_name> is mapped to multiple Servlets. 
     at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:114) 
     at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100) 
     at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:192) 
     at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:187) 
     at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:83) 
     at weblogic.application.utils.StateMachineDriver.nextStateInParallel(StateMachineDriver.java:144) 
     at weblogic.application.internal.flow.ModuleStateDriver.parallelPrepare(ModuleStateDriver.java:46) 
     at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:75) 
     at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:55) 
     at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:731) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) 
     at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:243) 
     at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:66) 
     at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158) 
     at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:65) 
     at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:158) 
     at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:41) 
     at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:193) 
     at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:31) 
     at weblogic.management.deploy.internal.ConfiguredDeployments$2.doItem(ConfiguredDeployments.java:684) 
     at weblogic.management.deploy.internal.parallel.BucketInvoker.invoke(BucketInvoker.java:138) 
     at weblogic.management.deploy.internal.ConfiguredDeployments.transitionAppsParallel(ConfiguredDeployments.java:692) 
     at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:322) 
     at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:202) 
     at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:207) 
     at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:129) 
     at weblogic.server.AbstractServerService.postConstruct(AbstractServerService.java:76) 
     at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:498) 
     at org.glassfish.hk2.utilities.reflection.ReflectionHelper.invoke(ReflectionHelper.java:1262) 
     at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:332) 
     at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374) 
     at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) 
     at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:232) 
     at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) 
     at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2020) 
     at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) 
     at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:88) 
     at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213) 
     at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144) 
     at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:666) 
     at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) 
     at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) 
     at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) 
     at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) 
     at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) 
+1

你有沒有得到這個解決?我現在有同樣的問題。 – OldProgrammer

回答

0

的問題不會在12.1.3版本(這正好是我們註定要升級到版本)存在。

1

如果您在java代碼中使用web註釋,則不必在web.xml文件中再聲明servlet。

您可以通過刪除相應的「小服務程序」,並在web.xml「Servlet映射」標籤嘗試

似乎在WebLogic 12.1.3可以處理雙聲明(內嵌註釋& XML),但現在不是了在WebLogic 12.2中。

當我指定「serviceName」參數並且在web.xml文件中聲明具有相同值的servlet時,我發生了@webservice註釋的這個錯誤。