Object reference not set to an instance of an object

Dedicated to DataStage and DataStage TX editions featuring IBM<sup>®</sup> Service-Oriented Architectures.

Moderators: chulett, rschirm

Post Reply
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Object reference not set to an instance of an object

Post by chulett »

Been revisiting the Web Services Transformer stage and thus trying to import the metadata from a new service currently in developement. The subject is the error we get when attempting to do so from the wsdl provided. Don't really get anything more useful from the error message itself.

After that, I'm presented with the wsdl itself, but in the right-hand side Explorer pane while it does display the service name, there are no 'methods' (hope that's the right term) listed. All I get is the red 'bang ball' labelled 'Failed'.

Any idea what the error means? If posting the actual wsdl would help, I can do that when I get into the office.
-craig

"You can never have too many knives" -- Logan Nine Fingers
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

dpcFuzzyMatchServiceConcrete.wsdl

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" 
xmlns:impl="http://www.rhd.com/dpc/matchService/1.0" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www.rhd.com/dpc/matchService/1.0">
	<wsdl:import namespace="http://www.rhd.com/dpc/matchService/1.0" location="dpcFuzzyMatchServiceAbstract.wsdl"/>
	<wsdl:binding name="matchServiceSoapBinding" type="impl:DPCMatchManager">
		<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="matchListingInfo">
			<wsdlsoap:operation soapAction="matchListingInfo"/>
			<wsdl:input>
				<wsdlsoap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<wsdlsoap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="DPCMatchManagerService">

		<!--
		******************ALSB SERVER PORT*************************
		-->
		<!--
		-->
		<wsdl:port name="matchService" binding="impl:matchServiceSoapBinding">
			<wsdlsoap:address location="http://esb-dev-f5.dexmedia.com/dpc/services/matchService"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>
This is the related wsdl mentioned above: dpcFuzzyMatchServiceAbstract.wsdl

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://www.rhd.com/dpc/matchService/1.0" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:dpc="http://www.rhd.com/dpc/match/1.0" 
xmlns:rhd="http://www.rhd.com"
targetNamespace="http://www.rhd.com/dpc/matchService/1.0">
	<wsdl:types>
		<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.rhd.com/dpc/matchService/1.0">
			<import schemaLocation="./../schemas/dpcMatchServiceDataTypes_v1.0.xsd" namespace="http://www.rhd.com/dpc/match/1.0"/>			
			<import schemaLocation="./../rhdDataTypes.xsd" namespace="http://www.rhd.com"/>
		</schema>
	</wsdl:types>
	<wsdl:message name="matchListingInfoRequest">
		<wsdl:part name="request" element="dpc:FuzzyAddressMatchRequest"/>
	</wsdl:message>
	<wsdl:message name="matchListingInfoResponse">
		<wsdl:part name="response" element="dpc:FuzzyAddressMatchResponse"/>
	</wsdl:message>
	<wsdl:portType name="DPCMatchManager">
		<wsdl:operation name="matchListingInfo">
			<wsdl:input name="matchListingInfoRqst" message="impl:matchListingInfoRequest"/>
			<wsdl:output name="matchListingInfoRsp" message="impl:matchListingInfoResponse"/>
		</wsdl:operation>
	</wsdl:portType>
</wsdl:definitions>
-craig

"You can never have too many knives" -- Logan Nine Fingers
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

WS Pack can (directly) handle simple, singleton Web Service calls.... this means those that have a single row in, with "n" columns or aruments, and a single row out, with "n" columns or return arguments.

Anything else means customization... an array in or array out, or any type of complex body....nested hierarchy, etcl, will have to be developed first (or decipered after) via XMLpack.... and WSPack used for the HTTP packaging, security, etc.

Best bet and easiest way to attack this? Ask the author of the service for a sample SOAP envelope in and sample soap envelope out..... then you'll better know what has to be built in the xml stages...

Ernie
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Forgot to post the resolution. I asked one of our webservice wiz boys about combining the two wsdls, which he did for me and which could then be imported successfully.

And, last but not certainly least, used successfully as well. :D
-craig

"You can never have too many knives" -- Logan Nine Fingers
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

It would be edifying if you could post the combined wsdl.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

ah.... sorry I misread that one Craig... This was not a case of a too-complex WSDL (per my message above, but beware of that also)...this is the case where the "service" aspects (including the critical endpoint) of the WSDL are separated from the message and operation definitions. ...indeed, combining them is the solution.

This seems to be one of those industry/standards debates. About the only time I've seen such separation is within some of the java oriented IDE's, especially WebSphere tools, who insist on separating the endpoint definition. Separate WSDLs are also common in some of the repositories, especially the new WSRR. There are arguments that support debating this either way, although most of the .NET consumers I've found prefer to have "one" single WSDL.

Ernie
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Thanks Ernie. Interesting stuff, was blissfully unaware of the debates. :wink:

I must have missed Ray's edification request. I'll try to remember to post the combined wsdl when I get back in the office as others may find it helpful.
-craig

"You can never have too many knives" -- Logan Nine Fingers
Nicole
Premium Member
Premium Member
Posts: 93
Joined: Mon Oct 22, 2007 12:55 pm
Location: Albany
Contact:

Post by Nicole »

Hi Craig. By any chance, do you have the wsdl you got from combining the two? That would be extremely helpful. I'm receiving the same error message.

Thanks,

Nicole
chulett wrote:Thanks Ernie. Interesting stuff, was blissfully unaware of the debates. :wink:

I must have missed Ray's edification request. I'll try to remember to post the combined wsdl when I get back in the office as others may find it helpful.
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Here is the combined wsdl we ended up using, hope it helps:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://www.rhd.com/dpc/matchService/1.0" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:dpc="http://www.rhd.com/dpc/match/1.0" 
xmlns:rhd="http://www.rhd.com"
targetNamespace="http://www.rhd.com/dpc/matchService/1.0">
	<wsdl:types>
		<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.rhd.com/dpc/matchService/1.0">
			<import schemaLocation="./dpcMatchServiceDataTypes_v1.0.xsd" namespace="http://www.rhd.com/dpc/match/1.0"/>			
			<import schemaLocation="./rhdDataTypes.xsd" namespace="http://www.rhd.com"/>
		</schema>
	</wsdl:types>
	<wsdl:message name="matchListingInfoRequest">
		<wsdl:part name="request" element="dpc:FuzzyAddressMatchRequest"/>
	</wsdl:message>
	<wsdl:message name="matchListingInfoResponse">
		<wsdl:part name="response" element="dpc:FuzzyAddressMatchResponse"/>
	</wsdl:message>
	<wsdl:portType name="DPCMatchManager">
		<wsdl:operation name="matchListingInfo">
			<wsdl:input name="matchListingInfoRqst" message="impl:matchListingInfoRequest"/>
			<wsdl:output name="matchListingInfoRsp" message="impl:matchListingInfoResponse"/>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="matchServiceSoapBinding" type="impl:DPCMatchManager">
		<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="matchListingInfo">
			<wsdlsoap:operation soapAction="matchListingInfo"/>
			<wsdl:input>
				<wsdlsoap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<wsdlsoap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="DPCMatchManagerService">

		<!--
		******************ALSB SERVER PORT*************************
		-->
		<!--
		-->
		<wsdl:port name="matchService" binding="impl:matchServiceSoapBinding">
			<wsdlsoap:address location="http://esb-dev-f5.dexmedia.com/dpc/services/matchService"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>
-craig

"You can never have too many knives" -- Logan Nine Fingers
Post Reply