hi,

you did not WSDL file but i would guess that binding is referencing incorrect (namespace) port type.

if you use WSDL4J make sure that |*isUndefined <http://www.cs.indiana.edu/%7Eyinjin/web-services/wsdlapi/javax/wsdl/PortType.html#isUndefined%28%29>*()| is not true ...

HTH,

alek

Mark Leone wrote:

I put some debug statements into the class that's throwing this Exception (org.apache.axis.wsdl.symbolTable.SymbolTable). I found something interesting.

It looks like there is no problem with the operations in the binding. The Exception is thrown when the code is checking that each binding operation has a corresponding PortType operation. So I put some debug statements in the code that iterates through the PortType operations, checking that they're valid (i.e. not null). I found the following problem, which only occurs for the three operations that have messages with mime parts in them (Send, FaxReceive, and Status):

As the code is iterating through the operations of the PortType, it finds two instances of each of the three problematic operations. The first instance has input and output messages with the proper parts, per the wsdl. However, the second instance has no input or output message associated with it (throws null pointer exception on getInput() and getOutput()). I guess the method that checks the PortType operations against the Binding operations is retrieving the defective instance of the PortType operation.

Here's the output of my debug code, showing the operations, messages, and parts for the IXMLWS PortType. Not sure why this is happening, but the fact that it only occurs for messages with mime parts is a clue. Sure looks like a bug to me. Can someone validate that assessment before I submit a bug report?

*********************************************************************
PortType = {http://tempuri.org/}IXMLWS
*********************************************************************
******************************************************** *************
Operation = Register
Input Message = {http://tempuri.org/}Register0Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=RegData
typeName={http://www.borland.com/namespaces/Types}TStringDynArray
Output Message = {http://tempuri.org/}Register0Response
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = Send
Input Message = {http://tempuri.org/}Send1Request
Part = Part: name=Schalter
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=SendFile1
typeName={http://www.w3.org/2001/XMLSchema}base64Binary
Part = Part: name=SendFile3
typeName={http://www.w3.org/2001/XMLSchema}base64Binary
Part = Part: name=SendText
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=SendFile2
typeName={http://www.w3.org/2001/XMLSchema}base64Binary
Part = Part: name=JobArt
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=EmpfaengerListe
typeName={http://www.w3.org/2001/XMLSchema}base64Binary
Part = Part: name=EmpfaengerNr
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=SendeDatumZeit
typeName={http://www.w3.org/2001/XMLSchema}dateTime
Output Message = {http://tempuri.org/}Send1Response
Part = Part: name=AnzahlSeiten
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=CheckDocFile
typeName={http://www.w3.org/2001/XMLSchema}base64Binary
Part = Part: name=JobId
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=AnzahlEmpfaenger
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = FaxReceive
Input Message = {http://tempuri.org/}FaxReceive2Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}FaxReceive2Response
Part = Part: name=FaxImage
typeName={http://www.w3.org/2001/XMLSchema}base64Binary
Part = Part: name=ReceiveDate
typeName={http://www.w3.org/2001/XMLSchema}dateTime
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=FaxFile
typeName={http://www.w3.org/2001/XMLSchema}string
******************************************************** *************
******************************************************** *************
Operation = FaxDelete
Input Message = {http://tempuri.org/}FaxDelete3Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=FaxFile
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}FaxDelete3Response
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = Status
Input Message = {http://tempuri.org/}Status4Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=JobId
typeName={http://www.w3.org/2001/XMLSchema}int
Output Message = {http://tempuri.org/}Status4Response
Part = Part: name=Protokoll
typeName={http://www.w3.org/2001/XMLSchema}base64Binary
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = Journal
Input Message = {http://tempuri.org/}Journal5Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Offset
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=AnzLines
typeName={http://www.w3.org/2001/XMLSchema}int
Output Message = {http://tempuri.org/}Journal5Response
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=JournalTab
typeName={http://www.borland.com/namespaces/Types}TStringDynArray
******************************************************** *************
******************************************************** *************
Operation = Kundenname
Input Message = {http://tempuri.org/}Kundenname6Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}Kundenname6Response
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=KdName
typeName={http://www.w3.org/2001/XMLSchema}string
******************************************************** *************
******************************************************** *************
Operation = Kundendaten
Input Message = {http://tempuri.org/}Kundendaten7Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}Kundendaten7Response
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
Part = Part: name=KdDaten
typeName={http://www.borland.com/namespaces/Types}TStringDynArray
******************************************************** *************
******************************************************** *************
Operation = KundenAccount
Input Message = {http://tempuri.org/}KundenAccount8Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}KundenAccount8Response
Part = Part: name=AccountData
typeName={http://www.borland.com/namespaces/Types}TStringDynArray
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = SendWelcomeMail
Input Message = {http://tempuri.org/}SendWelcomeMail9Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}SendWelcomeMail9Response
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = SetPassword
Input Message = {http://tempuri.org/}SetPassword10Request
Part = Part: name=OldPassword
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=NewPassword
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}SetPassword10Response
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = Kontostand
Input Message = {http://tempuri.org/}Kontostand11Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=Password
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}Kontostand11Response
Part = Part: name=KdKontostand
typeName={http://www.w3.org/2001/XMLSchema}double
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = CheckPromoCode
Input Message = {http://tempuri.org/}CheckPromoCode12Request
Part = Part: name=Account
typeName={http://www.w3.org/2001/XMLSchema}string
Part = Part: name=PromoCode
typeName={http://www.w3.org/2001/XMLSchema}string
Output Message = {http://tempuri.org/}CheckPromoCode12Response
Part = Part: name=return
typeName={http://www.w3.org/2001/XMLSchema}int
******************************************************** *************
******************************************************** *************
Operation = Send
java.lang.NullPointerException
******************************************************** *************
Operation = FaxReceive
java.lang.NullPointerException
******************************************************** *************
Operation = Status
java.lang.NullPointerException


From: "Steffen Heil" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
Subject: Beginners help
Date: Sun, 11 Apr 2004 20:08:48 +0200

Hi

I am very new to this, and I need to implement a SOAP client in Java.
I do have the wsdl, but it seems to be incorrect. Anyway, I cannot change
this.


WSDL2Java tells me:
[axis-wsdl2java] java.io.IOException: Binding operation has no corresponding
portType operation: name = Send, input name = Send1Request, output name =
Send1Response


Checking the WSDL file in XMLSpy gives me:
Extensible Object: a mime:part only allows you to use mime extensibility or
soap:body, as child items


Anyway, I cannot even find the error in the wsdl.
XMLSpy seems to think there error is here:
<mime:multipartRelated>
...
<mime:part>
<mime:content part="SendFile3" type="application/binary"/>
</mime:part>
</mime:multipartRelated>

The wsdl-File is here:
http://ccs.fax.de/xmlws.exe/wsdl/IXMLWS

Can someone tell me, what's wrong, or what I can do?
Or simply a hint, where to search for more information?

Regards,
Steffen


_________________________________________________________________
Get rid of annoying pop-up ads with the new MSN Toolbar – FREE! http://toolbar.msn.com/go/onm00200414ave/direct/01/




--
The best way to predict the future is to invent it - Alan Kay



Reply via email to