cancel
Showing results for 
Search instead for 
Did you mean: 

Top-Down Web Service Generation fails

Former Member
0 Kudos

Hi all,

please excuse me if this is the wrong forum and redirect me to the correct one.

I'm trying to generate a web service Java skeleton from a WSDL file. Please find the WSDL at the end of the post. For the creating the skeleton I right-click the WSDL file in the Project Explorer and select "Web Services" > "Generate Java bean skeleton". The slider is set to "Develop service" and for the Configuration part I select an EJB project which I create prior to using the wizard. The respective Enterprise Application Project is selected automatically, similarily the "Server" (SAP Server) and "Web service runtime" (SAP Netweaver) are set up due to my default settings/preferences. No client is generated, and none of the checkbox options are chosen. For the following windows I leave the default settings and no collisions are found. But after clicking "Next" on the screen that would list collisions that should be resolved, the generation fails with the following error message: (Please let me know if I should post the full message as this is a shortened version)

IWAB0014E Unexpected exception occurred.
  
      java.lang.NullPointerException
      at com.sap.ide.jee.ws.jee5.runtime.provider.internal.generator.topdown.Ejb3TopDownProviderGenerator.getInterfaceDataFromInterfaceMapping(Ejb3TopDownProviderGenerator.java:154)
      at com.sap.ide.jee.ws.jee5.runtime.provider.internal.generator.topdown.Ejb3TopDownProviderGenerator.createProviderMetadata(Ejb3TopDownProviderGenerator.java:123)
      at com.sap.ide.jee.ws.jee5.runtime.provider.internal.generator.topdown.Ejb3TopDownProviderGenerator.postGenerate(Ejb3TopDownProviderGenerator.java:85)
      at com.sap.ide.jee.ws.jee5.runtime.provider.internal.generator.topdown.Ejb3TopDownProviderGenerator.postGenerate(Ejb3TopDownProviderGenerator.java:39)
      at com.sap.ide.jee.ws.jee5.runtime.consumer.internal.impl.Wsdl2JavaGenerator.generateInternal(Wsdl2JavaGenerator.java:143)
      at com.sap.ide.jee.ws.jee5.runtime.consumer.internal.impl.Wsdl2JavaGenerator.generate(Wsdl2JavaGenerator.java:104)
      at com.sap.ide.jee.ws.jee5.runtime.provider.internal.generator.topdown.Ejb3TopDownProviderGenerator.generate(Ejb3TopDownProviderGenerator.java:62)
      at com.sap.ide.jee.ws.jee5.core.provider.commands.GenerateTopDownWebService.doGeneration(GenerateTopDownWebService.java:88)
      at com.sap.ide.jee.ws.common.core.consumer.AbstractWsdl2JavaGenerationCmd.doExecute(AbstractWsdl2JavaGenerationCmd.java:144)

The WSDL file passes the WSDL validator without any errors. The following is taken from the "About" information of my NWDS installation:

SAP NetWeaver Developer Studio

SAP NetWeaver 7.1 SP05 PAT0000

Build id: 200802021401

I tried generating the web service using a default Eclipse installation, which works. All the same settings as above are chosen, however, the target server and libraries aren't the SAP runtime but instead Axis. The following is taken from the "About" information of the Eclipse version with which the skeleton generation suceeds:

Version: 3.3.2

Build id: M20080221-1800

As the generation works when using plain Eclipse and the WTP plug-in, I assume that the WSDL is fine. Is there a way to upgrade the plug-ins? Following is the version information for the "WTP Webservice UI Plug-In" for both NWDS and Eclipse:

NWDS: 1.1.103.v200802192030

Eclispe: 1.1.101.v200706121000

Please let me know what other pieces of information could help solving this problem. Thank you for your time in advance!

Cheers,

Felix

WSDL file:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
	xmlns:tns="http://www.example.com/test/"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2"
	xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
	xmlns:wsnbrw="http://docs.oasis-open.org/wsn/brw-2"
	xmlns:wst="http://docs.oasis-open.org/wsn/t-1"
	xmlns:wsa="http://www.w3.org/2005/08/addressing"
	xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2"
	xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"
	name="Test"
	targetNamespace="http://www.example.com/test/">

	<wsdl:import
		namespace="http://docs.oasis-open.org/wsrf/rw-2"
		location="rw-2.wsdl" />
	<wsdl:import
		namespace="http://docs.oasis-open.org/wsn/bw-2"
		location="bw-2.wsdl" />
	<wsdl:import
		namespace="http://docs.oasis-open.org/wsn/brw-2"
		location="brw-2.wsdl" />

	<!-- ///////////// TYPES ///////////// -->
	<wsdl:types>
		<xsd:schema
			targetNamespace="http://www.example.com/test">

			<xsd:import
				namespace="http://docs.oasis-open.org/wsn/b-2"
				schemaLocation="b-2.xsd" />
			<xsd:import
				namespace="http://docs.oasis-open.org/wsn/t-1"
				schemaLocation="t-1.xsd" />

			<xsd:element name="NotificationProducerProperties">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element
							ref="wsnt:FixedTopicSet"
							minOccurs="0" />
						<xsd:element
							ref="wst:TopicSet"
							minOccurs="0" />
						<xsd:element
							ref="wsnt:TopicExpression"
							minOccurs="0"
							maxOccurs="unbounded" />
						<xsd:element
							ref="wsnt:TopicExpressionDialect"
							minOccurs="0"
							maxOccurs="unbounded" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>

		</xsd:schema>
	</wsdl:types>


	<!-- ///////////// MESSAGES ///////////// -->


	<!-- ///////////// PORT TYPES ///////////// -->


	<!-- ========= NotificationProducer PortType Definition =========== -->
	<!-- 
		Only deviates from WSN specifications in that it includes 
		NotificationProducerProperties according to WSRF specifications.	       
	-->
	<wsdl:portType
		name="NotificationProducer"
		wsrf-rp:ResourceProperties="tns:NotificationProducerProperties">
		<wsdl:operation name="Subscribe">
			<wsdl:input message="wsntw:SubscribeRequest" />
			<wsdl:output message="wsntw:SubscribeResponse" />
			<wsdl:fault
				name="ResourceUnknownFault"
				message="wsrf-rw:ResourceUnknownFault" />
			<wsdl:fault
				name="InvalidFilterFault"
				message="wsntw:InvalidFilterFault" />
			<wsdl:fault
				name="TopicExpressionDialectUnknownFault"
				message="wsntw:TopicExpressionDialectUnknownFault" />
			<wsdl:fault
				name="InvalidTopicExpressionFault"
				message="wsntw:InvalidTopicExpressionFault" />
			<wsdl:fault
				name="TopicNotSupportedFault"
				message="wsntw:TopicNotSupportedFault" />
			<wsdl:fault
				name="InvalidProducerPropertiesExpressionFault"
				message="wsntw:InvalidProducerPropertiesExpressionFault" />
			<wsdl:fault
				name="InvalidMessageContentExpressionFault"
				message="wsntw:InvalidMessageContentExpressionFault" />
			<wsdl:fault
				name="UnacceptableInitialTerminationTimeFault"
				message="wsntw:UnacceptableInitialTerminationTimeFault" />
			<wsdl:fault
				name="UnrecognizedPolicyRequestFault"
				message="wsntw:UnrecognizedPolicyRequestFault" />
			<wsdl:fault
				name="UnsupportedPolicyRequestFault"
				message="wsntw:UnsupportedPolicyRequestFault" />
			<wsdl:fault
				name="NotifyMessageNotSupportedFault"
				message="wsntw:NotifyMessageNotSupportedFault" />
			<wsdl:fault
				name="SubscribeCreationFailedFault"
				message="wsntw:SubscribeCreationFailedFault" />
		</wsdl:operation>

		<wsdl:operation name="GetCurrentMessage">
			<wsdl:input message="wsntw:GetCurrentMessageRequest" />
			<wsdl:output message="wsntw:GetCurrentMessageResponse" />
			<wsdl:fault
				name="ResourceUnknownFault"
				message="wsrf-rw:ResourceUnknownFault" />
			<wsdl:fault
				name="TopicExpressionDialectUnknownFault"
				message="wsntw:TopicExpressionDialectUnknownFault" />
			<wsdl:fault
				name="InvalidTopicExpressionFault"
				message="wsntw:InvalidTopicExpressionFault" />
			<wsdl:fault
				name="TopicNotSupportedFault"
				message="wsntw:TopicNotSupportedFault" />
			<wsdl:fault
				name="NoCurrentMessageOnTopicFault"
				message="wsntw:NoCurrentMessageOnTopicFault" />
			<wsdl:fault
				name="MultipleTopicsSpecifiedFault"
				message="wsntw:MultipleTopicsSpecifiedFault" />
		</wsdl:operation>
	</wsdl:portType>


	<!-- ///////////// BINDINGS ///////////// -->

	<!-- Subscription Manager Binding -->
	<wsdl:binding
		name="SubscriptionManagerBinding"
		type="wsntw:SubscriptionManager">
		<soap:binding
			style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="Renew">
			<soap:operation
				soapAction="http://www.example.com/test/Renew" />
			<wsdl:input name="RenewRequest">
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output name="RenewResponse">
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="ResourceUnknownFault">
				<soap:fault
					use="literal"
					name="ResourceUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="UnacceptableTerminationTimeFault">
				<soap:fault
					use="literal"
					name="UnacceptableTerminationTimeFault" />
			</wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="Unsubscribe">
			<soap:operation
				soapAction="http://www.example.com/test/Unsubscribe" />
			<wsdl:input name="UnsubscribeRequest">
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output name="UnsubscribeResponse">
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="ResourceUnknownFault">
				<soap:fault
					use="literal"
					name="ResourceUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="UnableToDestroySubscriptionFault">
				<soap:fault
					use="literal"
					name="UnableToDestroySubscriptionFault" />
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>

	<!-- Create PullPoint Binding -->
	<wsdl:binding
		name="CreatePullPointBinding"
		type="wsntw:CreatePullPoint">
		<soap:binding
			style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="CreatePullPoint">
			<soap:operation
				soapAction="http://www.example.com/test/CreatePullPoint" />
			<wsdl:input name="CreatePullPointRequest">
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output name="CreatePullPointResponse">
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="UnableToCreatePullPointFault">
				<soap:fault
					use="literal"
					name="UnableToCreatePullPointFault" />
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>

	<!-- Pull Point Binding -->
	<wsdl:binding
		name="PullPointBinding"
		type="wsntw:PullPoint">
		<soap:binding
			style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="GetMessages">
			<soap:operation
				soapAction="http://www.example.com/test/GetMessages" />
			<wsdl:input name="GetMessagesRequest">
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output name="GetMessagesResponse">
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="ResourceUnknownFault">
				<soap:fault
					use="literal"
					name="ResourceUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="UnableToGetMessagesFault">
				<soap:fault
					use="literal"
					name="UnableToGetMessagesFault" />
			</wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="DestroyPullPoint">
			<soap:operation
				soapAction="http://www.example.com/test/DestroyPullPoint" />
			<wsdl:input name="DestroyPullPointRequest">
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output name="DestroyPullPointResponse">
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="ResourceUnknownFault">
				<soap:fault
					use="literal"
					name="ResourceUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="UnableToDestroyPullPointFault">
				<soap:fault
					use="literal"
					name="UnableToDestroyPullPointFault" />
			</wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="Notify">
			<soap:operation
				soapAction="http://www.example.com/test/Notify" />
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
		</wsdl:operation>
	</wsdl:binding>

	<!-- Notification Producer Binding -->
	<wsdl:binding
		name="NotificationProducerBinding"
		type="tns:NotificationProducer">
		<soap:binding
			style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="Subscribe">
			<soap:operation
				soapAction="http://www.example.com/test/Subscribe" />
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="ResourceUnknownFault">
				<soap:fault
					use="literal"
					name="ResourceUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="InvalidFilterFault">
				<soap:fault
					use="literal"
					name="InvalidFilterFault" />
			</wsdl:fault>
			<wsdl:fault name="TopicExpressionDialectUnknownFault">
				<soap:fault
					use="literal"
					name="TopicExpressionDialectUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="InvalidTopicExpressionFault">
				<soap:fault
					use="literal"
					name="InvalidTopicExpressionFault" />
			</wsdl:fault>
			<wsdl:fault name="TopicNotSupportedFault">
				<soap:fault
					use="literal"
					name="TopicNotSupportedFault" />
			</wsdl:fault>
			<wsdl:fault
				name="InvalidProducerPropertiesExpressionFault">
				<soap:fault
					use="literal"
					name="InvalidProducerPropertiesExpressionFault" />
			</wsdl:fault>
			<wsdl:fault name="InvalidMessageContentExpressionFault">
				<soap:fault
					use="literal"
					name="InvalidMessageContentExpressionFault" />
			</wsdl:fault>
			<wsdl:fault
				name="UnacceptableInitialTerminationTimeFault">
				<soap:fault
					use="literal"
					name="UnacceptableInitialTerminationTimeFault" />
			</wsdl:fault>
			<wsdl:fault name="UnrecognizedPolicyRequestFault">
				<soap:fault
					use="literal"
					name="UnrecognizedPolicyRequestFault" />
			</wsdl:fault>
			<wsdl:fault name="UnsupportedPolicyRequestFault">
				<soap:fault
					use="literal"
					name="UnsupportedPolicyRequestFault" />
			</wsdl:fault>
			<wsdl:fault name="NotifyMessageNotSupportedFault">
				<soap:fault
					use="literal"
					name="NotifyMessageNotSupportedFault" />
			</wsdl:fault>
			<wsdl:fault name="SubscribeCreationFailedFault">
				<soap:fault
					use="literal"
					name="SubscribeCreationFailedFault" />
			</wsdl:fault>
		</wsdl:operation>
		<wsdl:operation name="GetCurrentMessage">
			<soap:operation
				soapAction="http://www.example.com/test/GetCurrentMessage" />
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="ResourceUnknownFault">
				<soap:fault
					use="literal"
					name="ResourceUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="TopicExpressionDialectUnknownFault">
				<soap:fault
					use="literal"
					name="TopicExpressionDialectUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="InvalidTopicExpressionFault">
				<soap:fault
					use="literal"
					name="InvalidTopicExpressionFault" />
			</wsdl:fault>
			<wsdl:fault name="TopicNotSupportedFault">
				<soap:fault
					use="literal"
					name="TopicNotSupportedFault" />
			</wsdl:fault>
			<wsdl:fault name="NoCurrentMessageOnTopicFault">
				<soap:fault
					use="literal"
					name="NoCurrentMessageOnTopicFault" />
			</wsdl:fault>
			<wsdl:fault name="MultipleTopicsSpecifiedFault">
				<soap:fault
					use="literal"
					name="MultipleTopicsSpecifiedFault" />
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>

	<!-- Notification Consumer Binding -->
	<wsdl:binding
		name="NotificationConsumerBinding"
		type="wsntw:NotificationConsumer">
		<soap:binding
			style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="Notify">
			<soap:operation
				soapAction="http://www.example.com/test/Notify" />
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
		</wsdl:operation>
	</wsdl:binding>

	<!-- Register Publisher Binding -->
	<wsdl:binding
		name="RegisterPublisherBinding"
		type="wsnbrw:RegisterPublisher">
		<soap:binding
			style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="RegisterPublisher">
			<soap:operation
				soapAction="http://www.example.com/test/RegisterPublisher" />
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="ResourceUnknownFault">
				<soap:fault
					use="literal"
					name="ResourceUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="InvalidTopicExpressionFault">
				<soap:fault
					use="literal"
					name="InvalidTopicExpressionFault" />
			</wsdl:fault>
			<wsdl:fault name="TopicNotSupportedFault">
				<soap:fault
					use="literal"
					name="TopicNotSupportedFault" />
			</wsdl:fault>
			<wsdl:fault name="PublisherRegistrationRejectedFault">
				<soap:fault
					use="literal"
					name="PublisherRegistrationRejectedFault" />
			</wsdl:fault>
			<wsdl:fault name="PublisherRegistrationFailedFault">
				<soap:fault
					use="literal"
					name="PublisherRegistrationFailedFault" />
			</wsdl:fault>
			<wsdl:fault
				name="UnacceptableInitialTerminationTimeFault">
				<soap:fault
					use="literal"
					name="UnacceptableInitialTerminationTimeFault" />
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>

	<!-- Publisher Registration Manager Binding -->
	<wsdl:binding
		name="PublisherRegistrationManagerBinding"
		type="wsnbrw:PublisherRegistrationManager">
		<soap:binding
			style="document"
			transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="DestroyRegistration">
			<soap:operation
				soapAction="http://www.example.com/test/DestroyRegistration" />
			<wsdl:input name="DestroyRegistrationRequest">
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output name="DestroyRegistrationResponse">
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="ResourceUnknownFault">
				<soap:fault
					use="literal"
					name="ResourceUnknownFault" />
			</wsdl:fault>
			<wsdl:fault name="ResourceNotDestroyedFault">
				<soap:fault
					use="literal"
					name="ResourceNotDestroyedFault" />
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>


	<wsdl:service name="TestService">
		<wsdl:port
			name="PublisherRegistrationManagerPort"
			binding="tns:PublisherRegistrationManagerBinding">
			<soap:address
				location="http://localhost:50100/Test/PublisherRegistrationManager" />
		</wsdl:port>
		<wsdl:port
			name="RegisterPublisherPort"
			binding="tns:RegisterPublisherBinding">
			<soap:address
				location="http://localhost:50100/Test/RegisterPublisher" />
		</wsdl:port>
		<wsdl:port
			name="NotificationProducerPort"
			binding="tns:NotificationProducerBinding">
			<soap:address
				location="http://localhost:50100/Test/NotificationProducer" />
		</wsdl:port>
		<wsdl:port
			name="NotificationConsumerPort"
			binding="tns:NotificationConsumerBinding">
			<soap:address
				location="http://localhost:50100/Test/NotificationConsumer" />
		</wsdl:port>
		<wsdl:port
			name="SubscriptionManagerPort"
			binding="tns:SubscriptionManagerBinding">
			<soap:address
				location="http://localhost:50100/Test/SubscriptionManager" />
		</wsdl:port>
		<wsdl:port
			name="CreatePullPointPort"
			binding="tns:CreatePullPointBinding">
			<soap:address
				location="http://localhost:50100/Test/CreatePullPoint" />
		</wsdl:port>
		<wsdl:port
			name="PullPointPort"
			binding="tns:PullPointBinding">
			<soap:address
				location="http://localhost:50100/Test/PullPoint" />
		</wsdl:port>
	</wsdl:service>

</wsdl:definitions>

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

FYI

The problem seems to be related to importing WSDL files. When including the elements from bw-2.wsdl and brw-2.wsdl directly in the posted WSDL the generation succeeds. Nevertheless importing rw-2.wsdl works fine.

Edited by: Felix Geller on Apr 22, 2008 8:34 PM