Ricardo,

Issue 1: where did the imported file
(http://glite.org/wsdl/services/org.glite.data.catalog) come from? Was this
generated by Java2WSDL or is this a file you defined? What type of file is
it? (I gather that it isn't a schema.) If your WSDL references elements or
types defined in this file, then you definitely need to import the
definitions, but the top level element of this file must be <schema>. 

Issue 2: 
Somewhere in your schema (or WSDL) you reference the soap-enc:string type
rather than the xsd:string type. Normally Axis should only generate a
soap-enc:string type when using RPC/encoded ("rpc" style"). Make sure that
you've specified that you want to use either "wrapped" style or "document"
style. If Axis generated a soap-enc:string type and you are generating
"wrapped" or "document", then you should log this as a bug.

Issue 3:
Per the WS-I BP, a fault message part (always doc/literal) must reference an
element definition, not a type definition. You must define an element of
type CatalogException:

<xs:element name="CatalogException" type="impl:CatalogException"/>

And your message definition must reference this element rather than the
complex type.

Note that Axis doesn't really support rpc/literal, so you must use
doc/literal to be WS-I compliant. Therefore all of your message parts must
reference element definitions rather than type definitions. 

Anne

-----Original Message-----
From: Ricardo Rocha [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, August 24, 2004 6:08 AM
To: [EMAIL PROTECTED]
Subject: java2wsdl and wsi conformance

Hi all.

I'm using the Java2WSDL tool to generate my WSDL from Java Interfaces. 
On these interfaces i have my own complex objects defined (beans), and 
i'm throwing exceptions.

I'm now trying to get it to be WSI conformant, but still have some 
issues. Started trying with the Java2WSDL utility coming with Axis 1.1, 
move to the 1.2beta, and right now i'm using a nightly build from 
yesterday (23rd august). Good progress on the way (especially with array 
definition inside the xml schema) :)

So current issues (i'm giving you all the failure messages given by the 
wsi-test-tools toolkit):

* first issue: imports inside schema definition

Assertion: WSI2102
Result: failed
Failure Message: An XML schema import element references something other 
than an XML schema definition: the referenced element does not have 
"schema" from XML namespace "http://www.w3.org/2001/XMLSchema"; as root 
element.
Failure Detail Message  

http://glite.org/wsdl/services/org.glite.data.catalog

Element Location:
   lineNumber=5

This is triggered by this:
   <schema 
targetNamespace="http://glite.org/wsdl/services/org.glite.data.catalog.servi
ce.meta" 
xmlns="http://www.w3.org/2001/XMLSchema";>
    <import 
namespace="http://glite.org/wsdl/services/org.glite.data.catalog"/>

It passes this test fine if i comment out this part, and i guess it 
would even work.

* second issue: something with string

Assertion: WSI2417
Result: failed
Failure Message: A QName reference that is referring to a schema 
component, uses a namespace not defined in the targetNamespace attribute 
on the xs:schema element, or in the namespace attribute on an xs:import 
element within the xs:schema element.
Failure Detail Message  

{http://schemas.xmlsoap.org/soap/encoding/}string

Element Location:
   lineNumber=2

I'm pretty much lost here... Don't have a clue why this comes up!

* third issue: Soap Binding Fault

Assertion: WSI2113
Result: failed
Failure Message: The soapbind:header, soapbind:headerfault or 
soapbind:fault elements refer to wsd:part element(s) that are not 
defined using only the "element" attribute.
Failure Detail Message  

{http://glite.org/wsdl/services/org.glite.data.catalog.service.meta}Attribut
eMetadataCatalogSoapBinding:fault

Element Location:
   lineNumber=276


I'm not sure also why this fails... The way it goes in the WSDL is the 
following:

- a complexType is defined for the exception (currently the Java 
Exception has nothing inside, so this type is empty also). Some 
exceptions extend the base exception.

    <complexType name="CatalogException">
     <sequence/>
    </complexType>
    <complexType name="AuthorizationException">
     <complexContent>
      <extension base="tns1:CatalogException">
       <sequence/>
      </extension>
     </complexContent>
    </complexType>

- each operation has a wsdl:fault throwing an exception:

       <wsdl:operation name="remove" parameterOrder="entryid">

          <wsdl:input message="impl:removeRequest" name="removeRequest"/>

          <wsdl:output message="impl:removeResponse" name="removeResponse"/>

          <wsdl:fault message="impl:CatalogException" 
name="CatalogException"/>

       </wsdl:operation>

- and in the binding:

          <wsdl:fault name="CatalogException">

             <wsdlsoap:fault name="CatalogException" use="literal"/>

          </wsdl:fault>


I guess i can have a complexType as a fault, so i don't understand this 
"only the element attribute" error.


I hope i can get some help in here... By the way, if anyone is 
interested i have written an ant task that uses the wsi-test-tools stuff 
to validate the wsdl that is generated. It also gives some nice html 
reports. I guess it could be interesting to make this WSI conformance 
test part of the Java2WSDL generation.

Thanks in advance,
   Ricardo Rocha

Reply via email to