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
