You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Chathura Herath (JIRA)" <ji...@apache.org> on 2005/06/09 12:30:23 UTC
[jira] Commented: (AXIS2-25) WSDL parsing issue.
[ http://issues.apache.org/jira/browse/AXIS2-25?page=comments#action_12313147 ]
Chathura Herath commented on AXIS2-25:
--------------------------------------
THe Stack trace submitted by Mike.
'D:\workspaces\lizenzserver\de.innovations.licenseserver.common\src\licenses.xsd'.
> Retrieving schema at 'xmldsig-core-schema.xsd', relative to
> 'file:/D:/workspaces/lizenzserver/de.innovations.licenseserver.common/src/licenses.xsd'.
> java.lang.RuntimeException: java.lang.NullPointerException
> at
> org.apache.axis.tool.codegen.eclipse.CodeGenWizard.doFinish(CodeGenWizard.java:104)
> at
> org.apache.axis.tool.codegen.eclipse.CodeGenWizard.performFinish(CodeGenWizard.java:78)
> at
> org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:609)
> at
> org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:305)
> at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:506)
> at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
> at org.eclipse.jface.window.Window.runEventLoop(Window.java:668)
> at org.eclipse.jface.window.Window.open(Window.java:648)
> at org.eclipse.ui.actions.NewWizardAction.run(NewWizardAction.java:163)
> at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
> at
> org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:915)
> at
> org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:866)
> at
> org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:785)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
> at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
> at
> org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
> at org.eclipse.core.launcher.Main.run(Main.java:704)
> at org.eclipse.core.launcher.Main.main(Main.java:688)
> Caused by: java.lang.NullPointerException
> at
> org.apache.axis.wsdl.builder.wsdl4j.WSDLPump.populateBindingOperation(WSDLPump.java:439)
> at
> org.apache.axis.wsdl.builder.wsdl4j.WSDLPump.populateBindings(WSDLPump.java:251)
> at
> org.apache.axis.wsdl.builder.wsdl4j.WSDLPump.populateDefinition(WSDLPump.java:169)
> at org.apache.axis.wsdl.builder.wsdl4j.WSDLPump.pump(WSDLPump.java:97)
> at
> org.apache.axis.wsdl.builder.wsdl4j.WSDL1ToWOMBuilder.build(WSDL1ToWOMBuilder.java:44)
> at
> org.apache.axis.tool.codegen.eclipse.CodeGenWizard.getWOM(CodeGenWizard.java:201)
> at
> org.apache.axis.tool.codegen.eclipse.CodeGenWizard.doFinish(CodeGenWizard.java:98)
> ... 35 more
> WSDL parsing issue.
> -------------------
>
> Key: AXIS2-25
> URL: http://issues.apache.org/jira/browse/AXIS2-25
> Project: Axis2
> Type: Bug
> Components: wsdl
> Environment: NA
> Reporter: Chathura Herath
> Assignee: Davanum Srinivas
>
> The issue arrives when the optional WSDL Binding Operation message references(which are optional) does not match with the Operations message references. Example.. WSDL
> ......................................................................................
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
> This is the main description file for the web service.
> It is used to generate some code, which is used by client and server.
> The data types are based on the XML Schema for license files, namely licenses.xsd. This file
> is imported directly into the types definition of this web server description language file.
> @author mhaller
> -->
> <wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://www.innovations.de/2005/v1/XMLLicenseSchema#Intf"
> xmlns:inno="http://www.innovations.de/2005/v1/XMLLicenseSchema"
> xmlns:intf="http://www.innovations.de/2005/v1/XMLLicenseSchema#Impl"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.innovations.de/2005/v1/XMLLicenseSchema#Impl">
>
> <!-- Declare the custom datatypes used in the license server web service -->
> <wsdl:types>
> <xsd:schema targetNamespace="http://www.innovations.de/2005/v1/XMLLicenseSchema">
> <!-- Import the license datatypes schema file -->
> <xsd:import schemaLocation="E:\licenses.xsd" namespace="http://www.innovations.de/2005/v1/XMLLicenseSchema"/>
> </xsd:schema>
> </wsdl:types>
>
>
>
> <!-- The declarations of the messages. There are two types of messages:
> Request-Messages which are sent from the client to the server.
> And Response-Messages which are sent from the server to the client.
> The message have "parts" - something like wrappers for parameters.
> The parts are declared below. -->
> <!-- The QueryLicense pair
> IN: A string with a list of features
> OUT: An object of type Licenses, which is a container for LicenseType objects -->
> <wsdl:message name="QueryLicensesRequest">
> <wsdl:part name="Features" type="xsd:string"/>
> </wsdl:message>
> <wsdl:message name="QueryLicensesResponse">
> <wsdl:part name="QueryLicensesReturn" type="inno:Licenses"/>
> </wsdl:message>
> <!-- Request a single license -->
> <wsdl:message name="RequestLicenseResponse">
> <wsdl:part name="RequestLicenseReturn" type="inno:License"/>
> </wsdl:message>
> <wsdl:message name="RequestLicenseRequest">
> <wsdl:part name="UniqueIdentifier" type="xsd:string"/>
> </wsdl:message>
> <!-- Free or unlock a license which was in use -->
> <wsdl:message name="FreeLicenseRequest">
> <wsdl:part name="UniqueIdentifier" type="xsd:string"/>
> </wsdl:message>
> <wsdl:message name="FreeLicenseResponse">
> <wsdl:part name="FreeLicenseReturn" type="xsd:boolean"/>
> </wsdl:message>
> <!-- Admin Messages -->
> <wsdl:message name="InstallLicenseRequest">
> <wsdl:part name="License" type="inno:License"/>
> </wsdl:message>
> <wsdl:message name="InstallLicenseResponse">
> <wsdl:part name="InstallLicenseReturn" type="xsd:boolean"/>
> </wsdl:message>
> <wsdl:message name="GetServerStatusRequest">
> </wsdl:message>
> <wsdl:message name="GetServerStatusResponse">
> <wsdl:part name="GetServerStatusReturn" type="inno:ServerStatus"/>
> </wsdl:message>
> <wsdl:message name="ReloadRequest">
> </wsdl:message>
> <wsdl:message name="ReloadResponse">
> </wsdl:message>
> <!-- The portType definition declares all the methods of the webserver
> and which messages it takes in from the client, and which messages it send out to the client. -->
> <wsdl:portType name="ILicenseServer">
> <wsdl:operation name="QueryLicenses" parameterOrder="Features">
> <wsdl:input message="intf:QueryLicensesRequest" name="QueryLicensesRequest"/>
> <wsdl:output message="intf:QueryLicensesResponse" name="QueryLicensesResponse"/>
> </wsdl:operation>
> <wsdl:operation name="RequestLicense" parameterOrder="UniqueIdentifier">
> <wsdl:input message="intf:RequestLicenseRequest" name="RequestLicenseRequest"/>
> <wsdl:output message="intf:RequestLicenseResponse" name="RequestLicenseResponse"/>
> </wsdl:operation>
> <wsdl:operation name="FreeLicense" parameterOrder="UniqueIdentifier">
> <wsdl:input message="intf:FreeLicenseRequest" name="FreeLicenseRequest"/>
> <wsdl:output message="intf:FreeLicenseResponse" name="FreeLicenseResponse"/>
> </wsdl:operation>
> <wsdl:operation name="InstallLicense" parameterOrder="License">
> <wsdl:input message="intf:InstallLicenseRequest" name="InstallLicenseRequest"/>
> <wsdl:output message="intf:InstallLicenseResponse" name="InstallLicenseResponse"/>
> </wsdl:operation>
> <wsdl:operation name="GetServerStatus">
> <wsdl:input message="intf:GetServerStatusRequest" name="GetServerStatusRequest"/>
> <wsdl:output message="intf:GetServerStatusResponse" name="GetServerStatusResponse"/>
> </wsdl:operation>
> <wsdl:operation name="Reload">
> <wsdl:input message="intf:ReloadRequest" name="ReloadRequest"/>
> <wsdl:output message="intf:ReloadResponse" name="ReloadResponse"/>
> </wsdl:operation>
> </wsdl:portType>
> <!-- The binding part of the WSDL file describes the transport implementation.
> Here, it's defined that the webservice can be accessed via HTTP protocol (or, to be more
> specific: via SOAP HTTP)
> The "document" style is used for interop, the "literal" use is the way how
> the parameters get wrapped (or not wrapped, in this case)
> Valid values for style are: "document" and "rpc", although there should also
> be "wrapped", which is a subtype of document. -->
> <wsdl:binding name="LicenseServerSoapBinding" type="intf:ILicenseServer">
> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="QueryLicenses">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="QueryLicensesRequest">
> <wsdlsoap:body use="literal"/>
> </wsdl:input>
> <wsdl:output name="QueryLicensesResponse">
> <wsdlsoap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="RequestLicense">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="RequestLicenseRequest">
> <wsdlsoap:body use="literal"/>
> </wsdl:input>
> <wsdl:output name="RequestLicenseResponse">
> <wsdlsoap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="FreeLicense">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="FreeLicenseRequest">
> <wsdlsoap:body use="literal"/>
> </wsdl:input>
> <wsdl:output name="FreeLicenseResponse">
> <wsdlsoap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="InstallLicense">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="InstallLicenseRequest">
> <wsdlsoap:body use="literal"/>
> </wsdl:input>
> <wsdl:output name="InstallLicenseResponse">
> <wsdlsoap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="GetServerStatus">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:output name="GetServerStatusResponse">
> <wsdlsoap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> <wsdl:operation name="Reload">
> <wsdlsoap:operation soapAction=""/>
> </wsdl:operation>
> </wsdl:binding>
> <!-- The service definition just tells us the name of the service,
> and where (address) we can find it. As this is no public web service,
> we are not defining a full qualified domain name here, but a short hostname.
> Later, in the client, the endpoint hostname will be made changeable. -->
> <wsdl:service name="ILicenseServerService">
> <wsdl:port binding="intf:LicenseServerSoapBinding" name="LicenseServer">
> <wsdlsoap:address location="http://licenseserver:8080/licenseserver/services/LicenseServer"/>
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> ..............................................................................................................
> XSD
> <?xml version="1.0"?>
> <!--
> This schema defines all the custom datatypes for use in the license server communication.
> It represents the model for licenses, license containers, and the values a license can have.
> It is used by the WSDL file to generate code.
> It is used by the Castor codegenerator to generate model code.
> It is used by the license files to validate themselves.
> -->
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.innovations.de/2005/v1/XMLLicenseSchema"
> xmlns:inno="http://www.innovations.de/2005/v1/XMLLicenseSchema"
> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
> elementFormDefault="qualified">
> <!--
> Documentation
> -->
> <xsd:annotation>
> <xsd:documentation xml:lang="en">A XML Schema for License Key Information as replacement for
> legacy file-based software license keys. Copyright (c) 2005 Innovations
> Softwaretechnologie GmbH. </xsd:documentation>
> <xsd:documentation xml:lang="de">Ein XML Schema für Lizenzschlüssel, als Ersatz für das
> bestehende dateibasierte Lizenzformat. Copyright (c) 2005 Innovations
> Softwaretechnologie GmbH. </xsd:documentation>
> </xsd:annotation>
> <!-- Importing the XML Security Schema -->
>
>
> <!--
> This is the root element of all license files.
> <Licenses>
> <License>
> </License>
> <License>
> </License>
> <LogEntry>
> </LogEntry>
> </Licenses>
> -->
> <!-- The container type for license keys -->
> <xsd:element name="Licenses" type="inno:LicenseContainer"/>
> <xsd:complexType name="LicenseContainer">
> <xsd:sequence>
> <xsd:element name="License" minOccurs="0" maxOccurs="unbounded" type="inno:LicenseType"/>
> <xsd:element name="LogEntry" minOccurs="0" maxOccurs="unbounded" type="inno:LogEntryType"/>
> </xsd:sequence>
> </xsd:complexType>
> <!-- A named license key binds a license to a specific person -->
> <xsd:element name="NamedLicenseModel">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="Person" type="inno:Identity"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <!-- A Node Locked License model locks a license to a specific machine -->
> <xsd:element name="NodeLockedLicenseModel">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="Node" type="inno:Identity"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <!-- A Floating License can be used concurrently by an amount of users -->
> <xsd:element name="FloatingLicenseModel">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="ConcurrentDevices" type="xsd:int" minOccurs="1" maxOccurs="1"
> nillable="false"/>
> <xsd:element name="AllowMultipleInstances" type="xsd:boolean" minOccurs="0"
> maxOccurs="1" nillable="false"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <!-- A Site license is only restricted to be used by employees by a single company -->
> <xsd:element name="SiteLicenseModel">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="Company" minOccurs="1" maxOccurs="1" type="inno:Identity"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <!-- Time restricted license model -->
> <xsd:element name="TimeRestrictedLicenseModel">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element minOccurs="0" name="ValidAfter" type="xsd:date"/>
> <xsd:element minOccurs="0" name="ValidBefore" type="xsd:date"/>
> <xsd:element minOccurs="0" name="ReleaseDateBefore" type="xsd:date"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <!-- The main License type includes signed information about the license key itself,
> meta information and optionally runtime-information -->
> <xsd:complexType name="LicenseType">
> <xsd:sequence>
> <!-- Very Important License Information -->
> <xsd:element name="SignedLicenseInfo" minOccurs="1">
> <xsd:complexType>
> <!-- This Id is used by XML Security to reference the signed element -->
> <xsd:sequence>
> <xsd:element name="Vendor" type="xsd:string"/>
> <xsd:element name="Application" type="xsd:string"/>
> <xsd:choice>
> <xsd:element ref="inno:NamedLicenseModel"/>
> <xsd:element ref="inno:NodeLockedLicenseModel"/>
> <xsd:element ref="inno:FloatingLicenseModel"/>
> <xsd:element ref="inno:SiteLicenseModel"/>
> <xsd:element ref="inno:TimeRestrictedLicenseModel"/>
> </xsd:choice>
> <!-- Extendable License Information -->
> <xsd:element name="Feature" maxOccurs="unbounded" minOccurs="0"
> type="inno:FeatureType"/>
> </xsd:sequence>
> <xsd:attribute name="Id" use="required" type="xsd:string"/>
> </xsd:complexType>
> </xsd:element>
> <!-- The position of the Digital Signature for this License -->
> <xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="unbounded"/>
> <!-- Additional License Information -->
> <xsd:element name="MetaInfo" minOccurs="0">
> <xsd:complexType>
> <xsd:sequence>
> <!-- Vendor/Application Information -->
> <xsd:element minOccurs="0" name="Description" type="xsd:string"/>
> <xsd:element minOccurs="0" name="Creation" type="xsd:date"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <!-- Additional Runtime License Information -->
> <xsd:element name="RuntimeInfo" minOccurs="0">
> <xsd:complexType>
> <xsd:sequence>
> <!-- Server-related Runtime Information -->
> <xsd:element minOccurs="0" maxOccurs="1" name="Locked" type="xsd:boolean"/>
> <xsd:element minOccurs="0" maxOccurs="1" name="LockedByUser"
> type="xsd:string"/>
> <xsd:element minOccurs="0" maxOccurs="1" name="LockedSince" type="xsd:date"/>
> <xsd:element minOccurs="0" maxOccurs="1" name="LockedUntil" type="xsd:date"
> />
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> <!-- Error Codes -->
> <xsd:simpleType name="StatusCode">
> <xsd:annotation>
> <xsd:documentation>Status codes being used in logfile</xsd:documentation>
> </xsd:annotation>
> <xsd:restriction base="xsd:int">
> <xsd:enumeration value="200" id="STATUS_OK"/>
> <xsd:enumeration value="403" id="STATUS_ERR_NO_AUTH"/>
> <xsd:enumeration value="404" id="STATUS_ERR_NOT_FOUND"/>
> <xsd:enumeration value="500" id="STATUS_ERR_INTERNAL"/>
> </xsd:restriction>
> </xsd:simpleType>
> <!-- Represents an identity, namely a person, a company or a machine -->
> <xsd:complexType name="Identity">
> <xsd:sequence>
> <xsd:element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
> <xsd:element name="Address" type="xsd:string" minOccurs="0" maxOccurs="1"/>
> <xsd:element name="EMail" type="xsd:string" minOccurs="0" maxOccurs="1"/>
> <xsd:element name="Hostname" type="xsd:string" minOccurs="0" maxOccurs="1"/>
> <xsd:element name="IPAddress" type="xsd:string" minOccurs="0" maxOccurs="1"/>
> <xsd:element name="MACAddress" type="xsd:string" minOccurs="0" maxOccurs="1"/>
> </xsd:sequence>
> </xsd:complexType>
> <!-- This is a complex type, which represents a map (key and value pairs) for
> defining features of a license. -->
> <xsd:complexType name="FeatureType">
> <xsd:attribute name="name" type="xsd:string" use="required"/>
> <xsd:attribute name="value" type="xsd:string" use="required"/>
> <!-- This can be used to differentiate content types, e.g.
> to use some basic scripting language like:
> <Feature name="majorVersion" type="script" value=">=3 && <= 4"/>
> -->
> <xsd:attribute name="type" type="xsd:string" default="plain" use="optional"/>
> </xsd:complexType>
> <!--
> Admin-Level: Server Management
> -->
> <xsd:complexType name="ServerStatus">
> <xsd:sequence>
> <xsd:element name="VersionString" maxOccurs="1" minOccurs="0" type="xsd:string"/>
> <xsd:element name="NumberLicenses" maxOccurs="1" minOccurs="0" type="xsd:int"/>
> <xsd:element name="NumberQueries" maxOccurs="1" minOccurs="0" type="xsd:long"/>
> <xsd:element name="NumberRequests" maxOccurs="1" minOccurs="0" type="xsd:long"/>
> <xsd:element name="RegistreeString" maxOccurs="1" minOccurs="0" type="xsd:string"/>
> <xsd:element name="UptimeSince" maxOccurs="1" minOccurs="0" type="xsd:duration"/>
> </xsd:sequence>
> </xsd:complexType>
> <!-- Server Stuff -->
> <xsd:complexType name="LogEntryType">
> <xsd:sequence>
> <xsd:element name="TimeStamp" type="xsd:date"/>
> <xsd:element name="RemoteUser" type="xsd:string"/>
> <xsd:element name="RemoteHost" type="xsd:string"/>
> <xsd:element name="StatusCode" type="inno:StatusCode"/>
> <xsd:element name="LicenseID" type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
>
> </xsd:schema>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira