You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Chris Wall <ch...@gmail.com> on 2006/08/21 20:21:55 UTC

binding.ws, SDO, NPE

Hey Raymond.  Thanks for finding my silly getString(str) bug.

I'd like to understand more about binding.ws.  It looks like with your
recent check-ins binds SDO to binding.ws.   With that, all outgoing and
incoming objects are converted to SDO objects to be manipulated by the Axis2
binding.  To do so, "import.sdo" reads in the WSDL to register schema types
as SDO objects.  Is that correct?

The issue I'm having is that ImportSDOLoader bombs when upon registering the
following complex type:

<types>
    <xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" targetNamespace="java:
com.bea.proto.webservice" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:complexType name="Patient">
        <xs:sequence>
          <xs:element minOccurs="1" name="Id" nillable="true"
type="xs:int"/>
          <xs:element minOccurs="1" name="Dob" nillable="true"
type="xs:dateTime"/>
          <xs:element minOccurs="1" name="FirstName" nillable="true"
type="xs:string"/>
          <xs:element minOccurs="1" name="Gender" nillable="true"
type="xs:string"/>
          <xs:element minOccurs="1" name="LastName" nillable="true"
type="xs:string"/>
          <xs:element minOccurs="1" name="MiddleName" nillable="true"
type="xs:string"/>
          <xs:element minOccurs="1" name="Phone" nillable="true"
type="xs:string"/>
          <xs:element minOccurs="1" name="Ssn" nillable="true"
type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
    </xs:schema>
...
</types>

java.lang.NullPointerException
        at org.eclipse.xsd.ecore.XSDEcoreBuilder.createFeature(
XSDEcoreBuilder.java:1765)
        at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.createFeature(
SDOXSDEcoreBuilder.java:139)
        at org.eclipse.xsd.ecore.XSDEcoreBuilder.createFeature(
XSDEcoreBuilder.java:1850)
        at org.eclipse.xsd.ecore.XSDEcoreBuilder.computeEClass(
XSDEcoreBuilder.java:1002)
        at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.computeEClass(
SDOXSDEcoreBuilder.java:104)
        at org.eclipse.xsd.ecore.XSDEcoreBuilder.computeEClassifier(
XSDEcoreBuilder.java:260)
        at
org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.computeEClassifier(
SDOXSDEcoreBuilder.java:113)
        at org.eclipse.xsd.ecore.XSDEcoreBuilder.getEClassifier(
XSDEcoreBuilder.java:212)
        at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.getEClassifier(
SDOXSDEcoreBuilder.java:76)
        at org.eclipse.xsd.ecore.XSDEcoreBuilder.generate(
XSDEcoreBuilder.java:2644)
        at org.apache.tuscany.sdo.helper.XSDHelperImpl.define(
XSDHelperImpl.java:189)
(The above is lost when converting to IllegalArgumentException.)
java.lang.IllegalArgumentException
        at org.apache.tuscany.sdo.helper.XSDHelperImpl.define(
XSDHelperImpl.java:210)
        at org.apache.tuscany.sdo.helper.XSDHelperImpl.define(
XSDHelperImpl.java:169)
        at org.apache.tuscany.databinding.sdo.ImportSDOLoader.importWSDL(
ImportSDOLoader.java:115)
        at org.apache.tuscany.databinding.sdo.ImportSDOLoader.load(
ImportSDOLoader.java:77)

I haven't yet looked into the xsd source.  Any ideas?

Also, I'm wondering is why SDO conversion is needed.  Couldn't the impl be
simpler by relying on Axis2's native transport, Axiom?  Wouldn't this also
eliminate the SDO dependency?  I'd like to understand deeper as to why this
WSDL works outside of binding.ws.

Thanks.

-Chris

Re: binding.ws, SDO, NPE

Posted by Raymond Feng <en...@gmail.com>.
1) "import.sdo" loads the WSDL/XSD to create SDO types for your model.

2) For the NPE, can any of the SDO folks take a look?

3) The SDO dependency for the Axis2 "binding.ws" is a temporary hack. It will be removed when we have the pluggable databinding in place. Please refer to another thread with title "Re: svn commit: r432156" for the related discussion. 

Thanks,
Raymond

----- Original Message ----- 
  From: Chris Wall 
  To: enjoyjava@gmail.com ; tuscany-dev@ws.apache.org 
  Sent: Monday, August 21, 2006 11:21 AM
  Subject: binding.ws, SDO, NPE


  Hey Raymond.  Thanks for finding my silly getString(str) bug.

  I'd like to understand more about binding.ws.  It looks like with your recent check-ins binds SDO to binding.ws.   With that, all outgoing and incoming objects are converted to SDO objects to be manipulated by the Axis2 binding.  To do so, "import.sdo" reads in the WSDL to register schema types as SDO objects.  Is that correct? 

  The issue I'm having is that ImportSDOLoader bombs when upon registering the following complex type:

  <types>
      <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="java: com.bea.proto.webservice" xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:complexType name="Patient">
          <xs:sequence> 
            <xs:element minOccurs="1" name="Id" nillable="true" type="xs:int"/>
            <xs:element minOccurs="1" name="Dob" nillable="true" type="xs:dateTime"/> 
            <xs:element minOccurs="1" name="FirstName" nillable="true" type="xs:string"/>
            <xs:element minOccurs="1" name="Gender" nillable="true" type="xs:string"/> 
            <xs:element minOccurs="1" name="LastName" nillable="true" type="xs:string"/>
            <xs:element minOccurs="1" name="MiddleName" nillable="true" type="xs:string"/> 
            <xs:element minOccurs="1" name="Phone" nillable="true" type="xs:string"/>
            <xs:element minOccurs="1" name="Ssn" nillable="true" type="xs:string"/> 
          </xs:sequence>
        </xs:complexType>
      </xs:schema>
  ...
  </types>

  java.lang.NullPointerException
          at org.eclipse.xsd.ecore.XSDEcoreBuilder.createFeature( XSDEcoreBuilder.java:1765)
          at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.createFeature(SDOXSDEcoreBuilder.java:139)
          at org.eclipse.xsd.ecore.XSDEcoreBuilder.createFeature(XSDEcoreBuilder.java:1850) 
          at org.eclipse.xsd.ecore.XSDEcoreBuilder.computeEClass(XSDEcoreBuilder.java:1002)
          at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.computeEClass(SDOXSDEcoreBuilder.java:104)
          at org.eclipse.xsd.ecore.XSDEcoreBuilder.computeEClassifier (XSDEcoreBuilder.java:260)
          at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.computeEClassifier(SDOXSDEcoreBuilder.java:113)
          at org.eclipse.xsd.ecore.XSDEcoreBuilder.getEClassifier(XSDEcoreBuilder.java :212)
          at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.getEClassifier(SDOXSDEcoreBuilder.java:76)
          at org.eclipse.xsd.ecore.XSDEcoreBuilder.generate(XSDEcoreBuilder.java:2644)
          at org.apache.tuscany.sdo.helper.XSDHelperImpl.define (XSDHelperImpl.java:189)
  (The above is lost when converting to IllegalArgumentException.)
  java.lang.IllegalArgumentException
          at org.apache.tuscany.sdo.helper.XSDHelperImpl.define(XSDHelperImpl.java:210)
          at org.apache.tuscany.sdo.helper.XSDHelperImpl.define(XSDHelperImpl.java:169)
          at org.apache.tuscany.databinding.sdo.ImportSDOLoader.importWSDL(ImportSDOLoader.java:115)
          at org.apache.tuscany.databinding.sdo.ImportSDOLoader.load (ImportSDOLoader.java:77)

  I haven't yet looked into the xsd source.  Any ideas?

  Also, I'm wondering is why SDO conversion is needed.  Couldn't the impl be simpler by relying on Axis2's native transport, Axiom?  Wouldn't this also eliminate the SDO dependency?  I'd like to understand deeper as to why this WSDL works outside of binding.ws.

  Thanks.

  -Chris