0 Replies Latest reply on May 21, 2009 4:45 PM by Frank Langelage

    Getting IAE using JBossWS to access MS Dynamics AX

    Frank Langelage Master

      Server: JBoss-4.2.4GA with jbossws-3.0.1-native-2.0.4.GA.
      I used wsconsume to generate the client artefacts from an MS Dynamics Axapta 2009 instance.
      When trying to use one of them I get

      Caused by: java.lang.IllegalArgumentException: Illegal null argument:ns
       at org.jboss.ws.metadata.wsdl.xmlschema.JBossXSModel.createNamespaceItemIfNotExistent(JBossXSModel.java:511)
       at org.jboss.ws.metadata.wsdl.xmlschema.JBossXSModel.addXSElementDeclaration(JBossXSModel.java:351)
       at org.jboss.ws.metadata.wsdl.xmlschema.WSSchemaUtils.copyXSModel(WSSchemaUtils.java:707)
       at org.jboss.ws.tools.JavaToXSD.parseSchema(JavaToXSD.java:202)
       at org.jboss.ws.tools.wsdl.WSDL11Reader.processTypes(WSDL11Reader.java:401)
       at org.jboss.ws.tools.wsdl.WSDL11Reader.processDefinition(WSDL11Reader.java:178)
       at org.jboss.ws.tools.wsdl.WSDLDefinitionsFactory.parse(WSDLDefinitionsFactory.java:128)
       at org.jboss.ws.metadata.umdm.ServiceMetaData.getWsdlDefinitions(ServiceMetaData.java:295)
       at org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.buildMetaData(JAXWSClientMetaDataBuilder.java:86)
       at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.<init>(ServiceDelegateImpl.java:140)
       at org.jboss.ws.core.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:64)
       at javax.xml.ws.Service.<init>(Service.java:81)
       at com.microsoft.schemas.dynamics._2008._01.services.GeneralJournalService_Service.<init>(GeneralJournalService_Service.java:40) at biz.mbisoftware.fn.ejb.session.inventory.GeneralLedgerIfAx2009.sendAggregatedValues(GeneralLedgerIfAx2009.java:36)
      

      I found https://jira.jboss.org/jira/browse/JBWS-686 which is solved, but studying the wsdl a question came up to my mind.
      The wsdl contains an import without namespace. Can this cause the exception?
      If yes, what can I do?

      First lines of WSDL:
      <wsdl:definitions name="GeneralJournalService" targetNamespace="http://schemas.microsoft.com/dynamics/2008/01/services">
      <wsp:Policy wsu:Id="BasicHttpBinding_GeneralJournalService_policy">
      <wsp:ExactlyOne>
      <wsp:All>
      <http:NegotiateAuthentication/>
      </wsp:All>
      </wsp:ExactlyOne>
      </wsp:Policy>
      <wsdl:types>
      <xsd:schema targetNamespace="http://schemas.microsoft.com/dynamics/2008/01/services/Imports">
      <xsd:import schemaLocation="http://ax-srv-01.contoso.com/MicrosoftDynamicsAXAif50/generaljournalservice.svc?xsd=xsd0" namespace="http://schemas.microsoft.com/dynamics/2008/01/services"/>
      <xsd:import schemaLocation="http://ax-srv-01.contoso.com/MicrosoftDynamicsAXAif50/generaljournalservice.svc?xsd=xsd6" namespace="http://schemas.microsoft.com/dynamics/2008/01/documents/Fault"/>
      <xsd:import schemaLocation="http://ax-srv-01.contoso.com/MicrosoftDynamicsAXAif50/generaljournalservice.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
      <xsd:import schemaLocation="http://ax-srv-01.contoso.com/MicrosoftDynamicsAXAif50/generaljournalservice.svc?xsd=xsd2" namespace="http://schemas.microsoft.com/dynamics/2008/01/documents/LedgerGeneralJournal"/>
      <xsd:import schemaLocation="http://ax-srv-01.contoso.com/MicrosoftDynamicsAXAif50/generaljournalservice.svc?xsd=xsd3"/>
      <xsd:import schemaLocation="http://ax-srv-01.contoso.com/MicrosoftDynamicsAXAif50/generaljournalservice.svc?xsd=xsd4" namespace="http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKeyList"/>
      <xsd:import schemaLocation="http://ax-srv-01.contoso.com/MicrosoftDynamicsAXAif50/generaljournalservice.svc?xsd=xsd5" namespace="http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKey"/>
      <xsd:import schemaLocation="http://ax-srv-01.contoso.com/MicrosoftDynamicsAXAif50/generaljournalservice.svc?xsd=xsd7" namespace="http://schemas.microsoft.com/dynamics/2006/02/documents/QueryCriteria"/>
      </xsd:schema>
      </wsdl:types>