Hi Everybody,
Using the WSDL2Java tool I got the following exception:
C:\wsdl>java
org.apache.axis.wsdl.WSDL2Java -s -S true NE3SPM.wsdl
java.lang.NullPointerException
at org.apache.axis.wsdl.toJava.Utils.getNewQName(Utils.java:704)
at org.apache.axis.wsdl.toJava.JavaStubWriter.writeOperation(JavaStubWri
ter.java:779)
at org.apache.axis.wsdl.toJava.JavaStubWriter.writeFileBody(JavaStubWrit
er.java:355)
at org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:148)
at org.apache.axis.wsdl.toJava.JavaBindingWriter.generate(JavaBindingWri
ter.java:141)
at org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(Jav
aGeneratorFactory.java:284)
at org.apache.axis.wsdl.gen.Parser.generate(Parser.java:328)
at org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:82)
at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:246)
at java.lang.Thread.run(Unknown Source)
It might be helpfull to mention that although an exception occurs, the client-side
bindings are successfully generated. What is not generated though are the server-side
bindings and the *.wsdd files.
Has any one a solution ?
Here are the wsdl file and the imported xsd file:
<?xml version="1.0" encoding="UTF-8"?>
<definitions
name="NE3SPMFragment"
targetNamespace="http://www.nokia.com/schemas/ne3s/pm/wsdl/v0.1/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:ne3s="http://www.nokia.com/schemas/ne3s/pm/v0.1/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.nokia.com/schemas/ne3s/pm/wsdl/v0.1/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<types>
<xsd:schema
targetNamespace="http://www.nokia.com/schemas/ne3s/pm/v0.1/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:commonTypes="http://www.nokia.com/schemas/ne3s/commonTypes/v1.1/"
xmlns:ne3s="http://www.nokia.com/schemas/ne3s/pm/v0.1/"
xmlns:sc="http://www.nokia.com/ne3s/pm/schedule/v1.3/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.nokia.com/schemas/ne3s/pm/wsdl/v0.1/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation> Importing the type definitions for NE3S
</xsd:documentation>
</xsd:annotation>
<xsd:import
namespace="http://www.nokia.com/schemas/ne3s/commonTypes/v1.1/"
schemaLocation="file:\USERS\NE3S-WS\NE3SCommonTypeDefinitions.xsd"/>
<!-- <xsd:import
namespace="http://www.nokia.com/ne3s/pm/schedule/v1.3/"
schemaLocation="C:\USERS\NE3S-WS\PM\NE3SPMSchedule1.3.xsd"/> -->
<xsd:element name="uploadScheduleResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" nillable="false"
type="commonTypes:RequestId"/>
<xsd:element name="measSchedule" nillable="false"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="downloadScheduleRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" nillable="false"
type="commonTypes:RequestId"/>
<!-- <xsd:element
name="measSchedule" type="sc:MeasSchedule"/> -->
<xsd:element name="measSchedule" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="GenericExceptionType">
<xsd:sequence>
<xsd:element name="requestId" nillable="false"
type="commonTypes:RequestId"/>
<xsd:element name="exception" type="commonTypes:Exception"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GenericRequestType">
<xsd:sequence>
<xsd:element name="requestId" nillable="false"
type="commonTypes:RequestId"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GenericResponseType">
<xsd:sequence>
<xsd:element name="requestId" nillable="false"
type="commonTypes:RequestId"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="downloadScheduleException"
type="ne3s:GenericExceptionType"/>
<xsd:element name="downloadScheduleResponse"
type="ne3s:GenericResponseType"/>
<xsd:element name="uploadScheduleException"
type="ne3s:GenericExceptionType"/>
<xsd:element name="uploadScheduleRequest" type="ne3s:GenericRequestType"/>
<xsd:element name="activateMeasJobException"
type="ne3s:GenericExceptionType"/>
<xsd:element name="activateMeasJobRequest" type="ne3s:GenericRequestType"/>
<xsd:element name="activateMeasJobResponse"
type="ne3s:GenericResponseType"/>
<xsd:element name="suspendMeasJobException"
type="ne3s:GenericExceptionType"/>
<xsd:element name="suspendMeasJobRequest" type="ne3s:GenericRequestType"/>
<xsd:element name="suspendMeasJobResponse"
type="ne3s:GenericResponseType"/>
<xsd:element name="getMeasJobStateRequest" type="ne3s:GenericRequestType"/>
<xsd:simpleType name="PMStateType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="idle"/>
<xsd:enumeration value="activating"/>
<xsd:enumeration value="activationFailed"/>
<xsd:enumeration value="active"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="getMeasJobStateResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" nillable="false"
type="commonTypes:RequestId"/>
<xsd:element name="actualState" type="ne3s:PMStateType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="measJobStateChangeNotification">
<xsd:complexType>
<xsd:sequence>
<xsd:element
minOccurs="0"
name="notificationId"
nillable="false"
type="commonTypes:NotificationId"/>
<xsd:element
minOccurs="0"
name="eventTime"
nillable="false"
type="commonTypes:Timestamp"/>
<xsd:element name="actualState" type="ne3s:PMStateType"/>
<xsd:element minOccurs="0" name="previousState"
type="ne3s:PMStateType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="measJobStateChangeNotificationAck">
<xsd:complexType>
<xsd:sequence>
<xsd:element
minOccurs="0"
name="notificationId"
nillable="false"
type="commonTypes:NotificationId"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="resultReadyNotification">
<xsd:complexType>
<xsd:sequence>
<xsd:element
minOccurs="0"
name="notificationId"
nillable="false"
type="commonTypes:NotificationId"/>
<xsd:element
minOccurs="0"
name="eventTime"
nillable="false"
type="commonTypes:Timestamp"/>
<xsd:element minOccurs="0" name="resultSize"
type="xsd:positiveInteger"/>
<xsd:element name="resultURL" nillable="false"
type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="resultReadyNotificationAck">
<xsd:complexType>
<xsd:sequence>
<xsd:element
minOccurs="0"
name="notificationId"
nillable="false"
type="commonTypes:NotificationId"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ResultType">
<xsd:sequence>
<xsd:element name="id" nillable="false"
type="commonTypes:NotificationId"/>
<xsd:element name="URL" nillable="false" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getResultTableResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestId" nillable="false"
type="commonTypes:RequestId"/>
<xsd:element
maxOccurs="unbounded"
minOccurs="1"
name="result"
nillable="false"
type="ne3s:ResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getResultTableException"
type="ne3s:GenericExceptionType"/>
<xsd:element name="getResultTableRequest" type="ne3s:GenericRequestType"/>
</xsd:schema>
</types>
<message name="uploadScheduleResponse">
<part element="ne3s:uploadScheduleRequest" name="uploadScheduleRequest"/>
</message>
<message name="activateMeasJobRequest">
<part element="ne3s:activateMeasJobRequest" name="activateMeasJobRequest"/>
</message>
<message name="downloadScheduleException">
<part element="ne3s:downloadScheduleException"
name="downloadScheduleException"/>
</message>
<message name="uploadScheduleException">
<part element="ne3s:uploadScheduleException" name="uploadScheduleException"/>
</message>
<message name="getResultTableException">
<part element="ne3s:getResultTableException" name="getResultTableException"/>
</message>
<message name="getMeasJobStateRequest">
<part element="ne3s:getMeasJobStateRequest" name="getMeasJobStateRequest"/>
</message>
<message name="suspendMeasJobException">
<part element="ne3s:suspendMeasJobException" name="suspendMeasJobException"/>
</message>
<message name="downloadScheduleRequest">
<part element="ne3s:downloadScheduleRequest" name="downloadScheduleRequest"/>
</message>
<message name="resultReadyNotification">
<part element="ne3s:resultReadyNotification" name="resultReadyNotification"/>
</message>
<message name="resultReadyNotificationAck">
<part
element="ne3s:resultReadyNotificationAck"
name="resultReadyNotificationAck"/>
</message>
<message name="suspendMeasJobResponse">
<part element="ne3s:suspendMeasJobResponse" name="suspendMeasJobResponse"/>
</message>
<message name="activateMeasJobException">
<part element="ne3s:activateMeasJobException" name="activateMeasJobException"/>
</message>
<message name="suspendMeasJobRequest">
<part element="ne3s:suspendMeasJobRequest" name="suspendMeasJobRequest"/>
</message>
<message name="activateMeasJobResponse">
<part element="ne3s:getMeasJobStateResponse" name="activateMeasJobResponse"/>
</message>
<message name="uploadScheduleRequest">
<part element="ne3s:uploadScheduleResponse" name="uploadScheduleResponse"/>
</message>
<message name="getResultTableRequest">
<part element="ne3s:getResultTableResponse" name="getResultTableResponse"/>
</message>
<message name="measJobStateChangeNotification">
<part name="measJobStateChangeNotification" type="xsd:string"/>
</message>
<message name="measJobStateChangeNotificationAck">
<part
element="ne3s:measJobStateChangeNotificationAck"
name="measJobStateChangeNotificationAck"/>
</message>
<message name="getMeasJobStateResponse">
<part element="ne3s:getMeasJobStateResponse" name="getMeasJobStateResponse"/>
</message>
<message name="downloadScheduleResponse">
<part element="ne3s:downloadScheduleResponse" name="downloadScheduleResponse"/>
</message>
<message name="getResultTableResponse">
<part element="ne3s:getResultTableRequest" name="getResultTableRequest"/>
</message>
<portType name="PMServices">
<operation name="resultReadyNotification">
<input message="tns:resultReadyNotification"/>
<output message="tns:measJobStateChangeNotificationAck"/>
</operation>
<operation name="getResultTable">
<input message="tns:getResultTableRequest"/>
<output message="tns:getResultTableResponse"/>
<fault message="tns:getResultTableException"
name="getResultTableException"/>
</operation>
<operation name="uploadSchedule">
<input message="tns:uploadScheduleRequest"/>
<output message="tns:uploadScheduleResponse"/>
<fault message="tns:uploadScheduleException"
name="uploadScheduleException"/>
</operation>
<operation name="downloadSchedule">
<input message="tns:downloadScheduleRequest"/>
<output message="tns:downloadScheduleResponse"/>
<fault message="tns:downloadScheduleException"
name="downloadScheduleException"/>
</operation>
<operation name="activateMeasJob">
<input message="tns:activateMeasJobRequest"/>
<output message="tns:activateMeasJobResponse"/>
<fault message="tns:activateMeasJobException"
name="activateMeasJobException"/>
</operation>
<operation name="suspendMeasJob">
<input message="tns:suspendMeasJobRequest"/>
<output message="tns:suspendMeasJobResponse"/>
<fault message="tns:suspendMeasJobException"
name="suspendMeasJobException"/>
</operation>
<operation name="getMeasJobState">
<input message="tns:getMeasJobStateRequest"/>
<output message="tns:getMeasJobStateResponse"/>
</operation>
<operation name="measJobStateChangeNotification">
<input message="tns:measJobStateChangeNotification"/>
<output message="tns:measJobStateChangeNotificationAck"/>
</operation>
</portType>
<binding name="PMServices" type="tns:PMServices">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="resultReadyNotification">
<soap:operation
soapAction="http://www.nokia.com/net/os/omif/ne3s/notification"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="getResultTable">
<soap:operation
soapAction="http://www.nokia.com/net/os/omif/ne3s/operation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="getResultTableException">
<soap:fault
encodingStyle=""
name="tns:getResultTableException"
namespace=""
use="literal"/>
</fault>
</operation>
<operation name="uploadSchedule">
<soap:operation
soapAction="http://www.nokia.com/net/os/omif/ne3s/operation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="uploadScheduleException">
<soap:fault
encodingStyle=""
name="tns:uploadScheduleException"
namespace=""
use="literal"/>
</fault>
</operation>
<operation name="downloadSchedule">
<soap:operation
soapAction="http://www.nokia.com/net/os/omif/ne3s/operation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="downloadScheduleException">
<soap:fault
encodingStyle=""
name="tns:downloadScheduleException"
namespace=""
use="literal"/>
</fault>
</operation>
<operation name="activateMeasJob">
<soap:operation
soapAction="http://www.nokia.com/net/os/omif/ne3s/operation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="activateMeasJobException">
<soap:fault
encodingStyle=""
name="tns:activateMeasJobException"
namespace=""
use="literal"/>
</fault>
</operation>
<operation name="suspendMeasJob">
<soap:operation
soapAction="http://www.nokia.com/net/os/omif/ne3s/operation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="suspendMeasJobException">
<soap:fault
encodingStyle=""
name="tns:suspendMeasJobException"
namespace=""
use="literal"/>
</fault>
</operation>
<operation name="getMeasJobState">
<soap:operation
soapAction="http://www.nokia.com/net/os/omif/ne3s/operation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="measJobStateChangeNotification">
<soap:operation
soapAction="http://www.nokia.com/net/os/omif/ne3s/notification"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="PMService">
<port binding="tns:PMServices" name="PMService">
<soap:address location="http://localhost:8000/ccx/PMService"/>
</port>
</service>
</definitions>
XSD File:
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by M.Grosse-Kreul (Nokia GmbH,
Networks) -->
<xsd:schema targetNamespace="http://www.nokia.com/schemas/ne3s/commonTypes/v1.1/"
xmlns:commonTypes="http://www.nokia.com/schemas/ne3s/commonTypes/v1.1/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:annotation>
<xsd:documentation>
====================================================================
COMMON TYPE DEFINITONS IN NE3S SOAP PROTOTOL
VERSION 1.1
DATE: 5.8.2003
====================================================================
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="Exception">
<xsd:annotation>
<xsd:documentation>
Common Type use to report failure in execution of an
operation
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="genericErrorCode"
type="commonTypes:GenericErrorCode" nillable="false" minOccurs="0"/>
<xsd:element name="specificErrorCode"
type="commonTypes:SpecificErrorCode" nillable="false"/>
<xsd:element name="errorText" type="xsd:string"
nillable="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ExceptionMessage">
<xsd:annotation>
<xsd:documentation>
Common Type use to report failure in execution of an operation
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="requestId" type="commonTypes:RequestId"
nillable="false"/>
<xsd:element name="faultInfo" type="commonTypes:Exception"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="GenericErrorCode">
<xsd:annotation>
<xsd:documentation>
Generic Error Codes used to identify common error situations in
processing a request.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="missingParameter"/>
<xsd:enumeration value="invalidParameterValue"/>
<xsd:enumeration value="messageParsingFailed"/>
<xsd:enumeration value="operationAborted"/>
<xsd:enumeration value="domainNotSupported"/>
<xsd:enumeration value="authorizationFailed"/>
<xsd:enumeration value="sessionAlreadyActive"/>
<xsd:enumeration value="noSessionActive"/>
<xsd:enumeration value="operationOngoing"/>
<xsd:enumeration value="abortOngoing"/>
<xsd:enumeration value="operationNotSupported"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SpecificErrorCode">
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="999999"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="RequestId">
<xsd:annotation>
<xsd:documentation>
Unique identifier of an operation (optionally used in request
and response)
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="Timestamp">
<xsd:restriction base="xsd:dateTime"/>
</xsd:simpleType>
<xsd:simpleType name="SDN">
<xsd:annotation>
<xsd:documentation>
System Distinguished Name in NE3S/WebSevice NetAct can handle maximum
160 characters (equals to a hierarchy of 10 classes). However when we are integrating
an element, some "space" for mapping the objects into the object tree. Thus the object
modle of an NE3S element shall not be longer than 7 hierarchies wich results in a
string length of max. 105 characters used by the agent
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="105"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Version">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NotificationId">
<xsd:annotation>
<xsd:documentation>
Notification Identifier is used in Notifications to implement the
Reliable Notification Mechansim in NE3S.
RNM introduces capabilities which enables the manager to detect the
loss of notifications and to initaite
corrective actions.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:positiveInteger">
<xsd:minExclusive value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Status">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="success"/>
<xsd:enumeration value="failed"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Thank you for your help and considerations,
Best Regards,
Miroslav Stoitsov