Axis2 code generation using ADB fails when an element is assigned a type defined in another schema --------------------------------------------------------------------------------------------------
Key: AXIS2-5196 URL: https://issues.apache.org/jira/browse/AXIS2-5196 Project: Axis2 Issue Type: Bug Components: databinding Affects Versions: 1.6.0 Environment: Eclipse 3.6, axis 1.6.0/1.6.1, codegen plugin 1.6.0/1.6.1 Reporter: Vitonofrio del Rosso I received a wsdl produced through some tool for oracle odsi, tried to generate the client via codegeneration plugin for eclipse and the generation failed, giving me this stacktrace Exception occurred during code generation for WSDL : org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.jst.ws.axis2.consumption.core.command.Axis2ClientCodegenCommand.execute(Axis2ClientCodegenCommand.java:222) at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.runCommand(CommandFragmentEngine.java:419) at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.visitTop(CommandFragmentEngine.java:359) at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.moveForwardToNextStop(CommandFragmentEngine.java:254) at org.eclipse.wst.command.internal.env.ui.widgets.SimpleCommandEngineManager$6.run(SimpleCommandEngineManager.java:294) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372) at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:1008) at org.eclipse.wst.command.internal.env.ui.widgets.SimpleCommandEngineManager.runForwardToNextStop(SimpleCommandEngineManager.java:264) at org.eclipse.wst.command.internal.env.ui.widgets.WizardPageManager.runForwardToNextStop(WizardPageManager.java:91) at org.eclipse.wst.command.internal.env.ui.widgets.WizardPageManager.performFinish(WizardPageManager.java:262) at org.eclipse.wst.command.internal.env.ui.widgets.DynamicWizard.performFinish(DynamicWizard.java:382) at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:811) at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:430) at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at org.eclipse.jface.window.Window.open(Window.java:801) at org.eclipse.wst.command.internal.env.ui.widgets.popup.DynamicPopupWizard.run(DynamicPopupWizard.java:130) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) Caused by: org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:293) ... 55 more Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:53) at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:246) ... 55 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:50) ... 56 more Caused by: org.apache.axis2.schema.SchemaCompilationException: The referenced element '{http://www.w3.org/2004/07/xpath-datatypes}Operation8Response' was not found! at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:752) at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:603) at org.apache.axis2.schema.SchemaCompiler.process(SchemaCompiler.java:2063) at org.apache.axis2.schema.SchemaCompiler.processParticle(SchemaCompiler.java:1946) at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1155) at org.apache.axis2.schema.SchemaCompiler.processAnonymousComplexSchemaType(SchemaCompiler.java:1054) at org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:1008) at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:644) at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:614) at org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:422) at org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:291) at org.apache.axis2.schema.ExtensionUtility.invoke(ExtensionUtility.java:102) ... 61 more the wsdl is ws-i compliant (checked both with ws-i tools and with soapui), and if i use xmlbeans as data binding i can produce valid code for a client (tested it already and it's working). This is the most suspect part "Caused by: org.apache.axis2.schema.SchemaCompilationException: The referenced element '{http://www.w3.org/2004/07/xpath-datatypes}Operation8Response' was not found!" So I assume it's most likely an issue restricted to the ADB. If you want to check the thing yourself, this is the incriminated wsdl <?xml version="1.0" encoding="UTF-8"?> <definitions targetNamespace="ld:PSUserHasUsim_ws" name="PSUserHasUsim" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="ld:PSUserHasUsim_ws" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <documentation>Oracle Data Service Integrator Web Service</documentation> <types> <xs:schema targetNamespace="ld:PSUserHasUsim_ws" elementFormDefault="qualified" xmlns:stns="ld:PSUserHasUsim_ws" xmlns:dsns0="http://www.w3.org/2004/07/xpath-datatypes"> <xs:import namespace="http://www.w3.org/2004/07/xpath-datatypes"/> <xs:element name="Operation8"> <xs:complexType> <xs:sequence> <xs:element name="MASTERPARTYID" type="xs:string"/> <xs:element name="PIVA" type="xs:string"/> <xs:element name="FISCAL_CODE" type="xs:string"/> <xs:element name="MSISDN" type="xs:string"/> <xs:element name="PORTFOLIOID" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Operation8Response"> <xs:complexType> <xs:sequence> <xs:element ref="dsns0:Operation8Response"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> <xsd:schema targetNamespace="http://www.w3.org/2004/07/xpath-datatypes" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2004/07/xpath-datatypes"> <xsd:element name="Operation8Response"> <xsd:complexType> <xsd:sequence> <xsd:element name="ESISTE_FLAG" type="xsd:string" maxOccurs="1" minOccurs="1"></xsd:element> <xsd:element name="STATUS_CODE" type="xsd:string" maxOccurs="1" minOccurs="1"></xsd:element> <xsd:element name="ERROR_CODE" type="xsd:string" maxOccurs="1" minOccurs="1"></xsd:element> <xsd:element name="ERROR_DESCRIPTION" type="xsd:string" maxOccurs="1" minOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </types> <message name="Operation8In"> <part name="parameters" element="tns:Operation8"/> </message> <message name="Operation8Out"> <part name="parameters" element="tns:Operation8Response"/> </message> <portType name="PSUserHasUsimPT"> <operation name="Operation8"> <input message="tns:Operation8In"/> <output message="tns:Operation8Out"/> </operation> </portType> <binding name="PSUserHasUsimSoapBinding" type="tns:PSUserHasUsimPT"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="Operation8"> <soap:operation soapAction="ld:PSUserHasUsim_ws/Operation8" style="document"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="PSUserHasUsimSoapService"> <port binding="tns:PSUserHasUsimSoapBinding" name="PSUserHasUsimSoapPort"> <soap:address location="http://10.212.139.24:7001/PSUserHasUsim/ALDSPWebService/PSUserHasUsim.ws"/> </port> </service> </definitions> the issue seems incredibly similar to this http://old.nabble.com/-jira--Created:-%28AXIS2-1512%29-ADB-code-generation-fails-when-%3Celement%3E-is-a-reference-to-included-schema-td7009228.html another user seems to have had a similar problem http://osdir.com/ml/axis-dev-ws.apache.org/2011-06/msg00003.html but claims to have "solved" it partially reverting to older axis2 versions.. is this some sort of regression bug? Thanks in advance, Vito -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org