简体   繁体   English

从 WebLogic 10.3 迁移到 12.1.1

[英]Migration from WebLogic 10.3 to 12.1.1

I am trying to migrate an application from WebLogic Server 10.3 to 12.1.1.我正在尝试将应用程序从 WebLogic Server 10.3 迁移到 12.1.1。 When starting the application I get the following Error.启动应用程序时,出现以下错误。

javax.xml.bind.JAXBException: 24
with linked exception:
[java.lang.ArrayIndexOutOfBoundsException: 24]
       at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:832)
       at org.eclipse.persistence.jaxb.JAXBContext.<init>(JAXBContext.java:143)
       at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:142)
       at com.sun.xml.ws.db.toplink.JAXBContextFactory.newContext(JAXBContextFactory.java:180)
       at com.sun.xml.ws.spi.db.BindingContextFactory.create(BindingContextFactory.java:179)
       at com.sun.xml.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:211)
       at com.sun.xml.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:185)
       at java.security.AccessController.doPrivileged(Native Method)
       at com.sun.xml.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:184)
       at com.sun.xml.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:109)
       at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:321)
       at com.sun.xml.ws.db.DatabindingImpl.<init>(DatabindingImpl.java:99)
       at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:74)
       at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:58)
       at com.sun.xml.ws.db.DatabindingFactoryImpl.createRuntime(DatabindingFactoryImpl.java:130)
       at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:411)
       at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:232)
       at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:546)
       at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:525)
       at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:601)
       at weblogic.wsee.jaxws.JAXWSDeployedServlet.getEndpoint(JAXWSDeployedServlet.java:183)
       at weblogic.wsee.jaxws.JAXWSServlet.registerEndpoint(JAXWSServlet.java:139)
       at weblogic.wsee.jaxws.JAXWSServlet.init(JAXWSServlet.java:68)
       at weblogic.wsee.jaxws.JAXWSDeployedServlet.init(JAXWSDeployedServlet.java:54)
       at javax.servlet.GenericServlet.init(GenericServlet.java:240)
       at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:299)
       at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:250)
       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.StubSecurityHelper.initServletInstance(StubSecurityHelper.java:94)
       at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:82)
       at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:74)
       at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:60)
       at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:34)
       at weblogic.servlet.internal.ServletStubImpl.initStubLifecycleHelper(ServletStubImpl.java:624)
       at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:565)
       at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1874)
       at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1848)
       at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1738)
       at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2740)
       at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1704)
       at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:781)
       at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:213)
       at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208)
       at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
       at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:70)
       at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:212)
       at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:111)
       at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
       at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:213)
       at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208)
       at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
       at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:70)
       at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:24)
       at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:729)
       at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
       at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258)
       at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:61)
       at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
       at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
       at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:582)
       at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:148)
       at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:114)
       at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:149)
       at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:335)
       at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
       at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
       at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440)
       at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
       at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
       at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
       at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
       at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
       at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
       at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 24
       at org.eclipse.persistence.internal.libraries.asm.Type.getType(Unknown Source)
       at org.eclipse.persistence.internal.libraries.asm.Type.getArgumentTypes(Unknown Source)
       at org.eclipse.persistence.internal.libraries.asm.MethodWriter.visitMaxs(Unknown Source)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMapEntryClass(MappingsGenerator.java:1546)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMapEntryClassAndDescriptor(MappingsGenerator.java:1484)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMapMapping(MappingsGenerator.java:1459)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMapping(MappingsGenerator.java:477)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMappings(MappingsGenerator.java:2033)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMappings(MappingsGenerator.java:1994)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateProject(MappingsGenerator.java:195)
       at org.eclipse.persistence.jaxb.compiler.Generator.generateProject(Generator.java:174)
       at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:837)<24.06.2014 16:42 Uhr MESZ> <Error> <HTTP> <BEA-101216> <Servlet: "xy" failed to preload on startup in Web application: "report.server".
com.sun.xml.ws.spi.db.DatabindingException: 24
       at com.sun.xml.ws.db.toplink.JAXBContextFactory.newContext(JAXBContextFactory.java:185)
       at com.sun.xml.ws.spi.db.BindingContextFactory.create(BindingContextFactory.java:179)
       at com.sun.xml.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:211)
       at com.sun.xml.ws.model.AbstractSEIModelImpl$1.run(AbstractSEIModelImpl.java:185)
       at java.security.AccessController.doPrivileged(Native Method)
       Truncated. see log file for complete stacktrace
Caused By: javax.xml.bind.JAXBException: 24
- with linked exception:
[java.lang.ArrayIndexOutOfBoundsException: 24]
       at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:832)
       at org.eclipse.persistence.jaxb.JAXBContext.<init>(JAXBContext.java:143)
       at org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(JAXBContextFactory.java:142)
       at com.sun.xml.ws.db.toplink.JAXBContextFactory.newContext(JAXBContextFactory.java:180)
       at com.sun.xml.ws.spi.db.BindingContextFactory.create(BindingContextFactory.java:179)
       Truncated. see log file for complete stacktrace
Caused By: java.lang.ArrayIndexOutOfBoundsException: 24
       at org.eclipse.persistence.internal.libraries.asm.Type.getType(Unknown Source)
       at org.eclipse.persistence.internal.libraries.asm.Type.getArgumentTypes(Unknown Source)
       at org.eclipse.persistence.internal.libraries.asm.MethodWriter.visitMaxs(Unknown Source)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMapEntryClass(MappingsGenerator.java:1546)
       at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateMapEntryClassAndDescriptor(MappingsGenerator.java:1484)
       Truncated. see log file for complete stacktrace
> 

       at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:830)
       ... 75 more

Additional Information:附加信息:

  • The unmodified code works just fine in WebLogic Server 12.1.2.未修改的代码在 WebLogic Server 12.1.2 中运行良好。 Unfortunately I have to use WLS 12.1.1.不幸的是,我必须使用 WLS 12.1.1。
  • We are using JAX-WS我们正在使用 JAX-WS
  • We are using JDK 7我们正在使用 JDK 7

If any additional information is required let me know.如果需要任何其他信息,请告诉我。

Thank you for your help!感谢您的帮助!

I am facing the same problem and the bug was supposed to be fixed in the Eclipselink ASM module in version 2.6.0 ( https://bugs.eclipse.org/bugs/show_bug.cgi?id=429992 ).我面临同样的问题,该错误应该在 2.6.0 版的 Eclipselink ASM 模块中修复( https://bugs.eclipse.org/bugs/show_bug.cgi?id=429992 )。

I upgrade the eclipselink JARs in weblogic, I packaged the JARs but the bug doesn't seem to be fixed.我在 weblogic 中升级了 eclipselink JARs,我打包了 JARs,但 bug 似乎没有修复。 The only way I got my webservices back working after upgrading to Weblogic 12 is by not using MOXy at all.升级到 Weblogic 12 后,我让 Web 服务恢复工作的唯一方法是根本不使用 MOXy。 You can do this by either loading databinding.override_1.2.0.0.jar in the weblogic classpath (system wide fix) or to define the services in your own EAR and tell weblogic to use the resources in the EAR.您可以通过在 weblogic 类路径(系统范围修复)中加载 databinding.override_1.2.0.0.jar 或在您自己的 EAR 中定义服务并告诉 weblogic 使用 EAR 中的资源来完成此操作。

In short, add a file named "com.sun.xml.ws.spi.db.BindingContextFactory" to src/main/resources/META-INF/services in your ear project and add the following line in it简而言之,在你的ear项目中的src/main/resources/META-INF/services中添加一个名为“com.sun.xml.ws.spi.db.BindingContextFactory”的文件,并在其中添加以下行

com.sun.xml.ws.db.glassfish.JAXBRIContextFactory

and a file named javax.xml.bind.JAXBContext with the following content和一个名为 javax.xml.bind.JAXBContext 的文件,内容如下

com.sun.xml.bind.v2.ContextFactory

Add the following lines to your weblogic-application.xml:将以下行添加到您的 weblogic-application.xml:

<prefer-application-resources>
    <resource-name>META-INF/services/com.sun.xml.ws.spi.db.BindingContextFactory</resource-name>
    <resource-name>META-INF/services/javax.xml.bind.JAXBContext</resource-name>
</prefer-application-resources>

And package jaxb in your application:并在您的应用程序中打包 jaxb:

<dependency>
 <groupId>com.sun.xml.bind</groupId>
 <artifactId>jaxb-impl</artifactId>
 <version>2.2.11</version>
</dependency>

If maven doesn't add your xml files to the EAR, make sure to add this to the configuration of the maven-ear-plugin:如果 maven 没有将您的 xml 文件添加到 EAR,请确保将其添加到 maven-ear-plugin 的配置中:

<earSourceDirectory>${basedir}/src/main/resources</earSourceDirectory>

I had a similar trouble with WLS 12c and i followed the instruction to add the changes in my ear package.我在 WLS 12c 上遇到了类似的问题,我按照说明在我的耳朵包中添加了更改。 The details is in this link .详细信息在此链接中

Is similar to the solution gave by @P_W999 and there is a solution for the server scope or the application scope.类似于@P_W999 给出的解决方案,并且有针对服务器范围或应用范围的解决方案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM