on 04-18-2008 5:31 PM
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>
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
94 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.