[problems with Axis-.NET interop]

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

[problems with Axis-.NET interop]

Marco Büchler
hi,

we 're trying to install some services needing some more complex
datatypes. first we tried an String[][] but we got some problems with
this. so we tried to splitt String[][] into an datamatrix-objekt
including an array of datavectors. an datavector has a
string[]-array-field. se attachments. the deploy-script is attached, too.

the soap-request-message using axis:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <execute xmlns="urn:Frequency">
      <objRequestParameters>
        <corpus>de2</corpus>
        <parameters>
          <dataVectors>
            <ns1:dataRow
xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de">Wort</ns1:dataRow>
            <ns2:dataRow
xmlns:ns2="http://datatypes.webservice.wortschatz.uni_leipzig.de">suchen</ns2:dataRow>
          </dataVectors>
        </parameters>
      </objRequestParameters>
    </execute>
  </soapenv:Body>
</soapenv:Envelope>


the soap-request-message using .NET:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <execute xmlns="urn:Frequency">
      <objRequestParameters>
        <corpus>de2</corpus>
        <parameters>
          <dataVectors>
            <dataRow
xmlns="http://datatypes.webservice.wortschatz.uni_leipzig.de">Wort</dataRow>
            <dataRow
xmlns="http://datatypes.webservice.wortschatz.uni_leipzig.de">suchen</dataRow>
          </dataVectors>
        </parameters>
      </objRequestParameters>
    </execute>
  </soap:Body>
</soap:Envelope>

both request can axis handle. and the axis produce the following
response-message:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <executeResponse xmlns="urn:Frequency">
      <executeReturn>
        <result>
          <ns1:dataVectors xsi:type="ns2:DataVector"
xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de"
xmlns:ns2="urn:Frequency">
            <ns1:dataRow>46593</ns1:dataRow>
            <ns1:dataRow>8</ns1:dataRow>
          </ns1:dataVectors>
        </result>
      </executeReturn>
    </executeResponse>
  </soapenv:Body>
</soapenv:Envelope>


the axis-client work fine. the .NET-client can't handle this message and
deserialize NULL.


does anybody know what's wrong??? hints and solutions are welcome.


regards


ciao
marco

/**
 * DataVector.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
 */

package de.uni_leipzig.wortschatz.webservice.datatypes;

public class DataVector  implements java.io.Serializable {
    private java.lang.String[] dataRow;

    public DataVector() {
    }

    public DataVector(
           java.lang.String[] dataRow) {
           this.dataRow = dataRow;
    }


    /**
     * Gets the dataRow value for this DataVector.
     *
     * @return dataRow
     */
    public java.lang.String[] getDataRow() {
        return dataRow;
    }


    /**
     * Sets the dataRow value for this DataVector.
     *
     * @param dataRow
     */
    public void setDataRow(java.lang.String[] dataRow) {
        this.dataRow = dataRow;
    }

    public java.lang.String getDataRow(int i) {
        return this.dataRow[i];
    }

    public void setDataRow(int i, java.lang.String _value) {
        this.dataRow[i] = _value;
    }

    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof DataVector)) return false;
        DataVector other = (DataVector) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true &&
            ((this.dataRow==null && other.getDataRow()==null) ||
             (this.dataRow!=null &&
              java.util.Arrays.equals(this.dataRow, other.getDataRow())));
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getDataRow() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getDataRow());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getDataRow(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        __hashCodeCalc = false;
        return _hashCode;
    }

    // Type metadata
    private static org.apache.axis.description.TypeDesc typeDesc =
        new org.apache.axis.description.TypeDesc(DataVector.class, true);

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://datatypes.webservice.wortschatz.uni_leipzig.de", "DataVector"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("dataRow");
        elemField.setXmlName(new javax.xml.namespace.QName("http://datatypes.webservice.wortschatz.uni_leipzig.de", "dataRow"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
        typeDesc.addFieldDesc(elemField);
    }

    /**
     * Return type metadata object
     */
    public static org.apache.axis.description.TypeDesc getTypeDesc() {
        return typeDesc;
    }

    /**
     * Get Custom Serializer
     */
    public static org.apache.axis.encoding.Serializer getSerializer(
           java.lang.String mechType,
           java.lang.Class _javaType,  
           javax.xml.namespace.QName _xmlType) {
        return
          new  org.apache.axis.encoding.ser.BeanSerializer(
            _javaType, _xmlType, typeDesc);
    }

    /**
     * Get Custom Deserializer
     */
    public static org.apache.axis.encoding.Deserializer getDeserializer(
           java.lang.String mechType,
           java.lang.Class _javaType,  
           javax.xml.namespace.QName _xmlType) {
        return
          new  org.apache.axis.encoding.ser.BeanDeserializer(
            _javaType, _xmlType, typeDesc);
    }

}

/**
 * RequestParameter.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis WSDL2Java emitter.
 */

package de.uni_leipzig.wortschatz.webservice.datatypes;

public class RequestParameter  implements java.io.Serializable {
    private java.lang.String corpus = "";
    private DataMatrix parameters;

    public RequestParameter() {
    }

    public java.lang.String getCorpus() {
        return corpus;
    }

    public void setCorpus(java.lang.String corpus) {
        this.corpus = corpus;
    }

    public DataMatrix getParameters() {
        return parameters;
    }

    public void setParameters(DataMatrix parameters) {
        this.parameters = parameters;
    }
}


package de.uni_leipzig.wortschatz.webservice.datatypes;

public class ResponseParameter implements java.io.Serializable {
   
    private DataMatrix result;
    private String executionTime;

    public ResponseParameter() {
    }


    public DataMatrix getResult() {
        return result;
    }

    public void setResult(DataMatrix result) {
        this.result = result;
    }
   
    public String getExecutionTime(){
        return executionTime;
    }
   
    public void setExecutionTime( String executionTime ){
        this.executionTime = executionTime;
    }
}

/**
 * DataMatrix.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis 1.2RC2 Nov 16, 2004 (12:19:44 EST) WSDL2Java emitter.
 */

package de.uni_leipzig.wortschatz.webservice.datatypes;

public class DataMatrix  implements java.io.Serializable {
    private de.uni_leipzig.wortschatz.webservice.datatypes.DataVector[] dataVectors;

    public DataMatrix() {
    }

    public DataMatrix(
           de.uni_leipzig.wortschatz.webservice.datatypes.DataVector[] dataVectors) {
           this.dataVectors = dataVectors;
    }


    /**
     * Gets the dataVectors value for this DataMatrix.
     *
     * @return dataVectors
     */
    public de.uni_leipzig.wortschatz.webservice.datatypes.DataVector[] getDataVectors() {
        return dataVectors;
    }


    /**
     * Sets the dataVectors value for this DataMatrix.
     *
     * @param dataVectors
     */
    public void setDataVectors(de.uni_leipzig.wortschatz.webservice.datatypes.DataVector[] dataVectors) {
        this.dataVectors = dataVectors;
    }

    public de.uni_leipzig.wortschatz.webservice.datatypes.DataVector getDataVectors(int i) {
        return this.dataVectors[i];
    }

    public void setDataVectors(int i, de.uni_leipzig.wortschatz.webservice.datatypes.DataVector _value) {
        this.dataVectors[i] = _value;
    }

    private java.lang.Object __equalsCalc = null;
    public synchronized boolean equals(java.lang.Object obj) {
        if (!(obj instanceof DataMatrix)) return false;
        DataMatrix other = (DataMatrix) obj;
        if (obj == null) return false;
        if (this == obj) return true;
        if (__equalsCalc != null) {
            return (__equalsCalc == obj);
        }
        __equalsCalc = obj;
        boolean _equals;
        _equals = true &&
            ((this.dataVectors==null && other.getDataVectors()==null) ||
             (this.dataVectors!=null &&
              java.util.Arrays.equals(this.dataVectors, other.getDataVectors())));
        __equalsCalc = null;
        return _equals;
    }

    private boolean __hashCodeCalc = false;
    public synchronized int hashCode() {
        if (__hashCodeCalc) {
            return 0;
        }
        __hashCodeCalc = true;
        int _hashCode = 1;
        if (getDataVectors() != null) {
            for (int i=0;
                 i<java.lang.reflect.Array.getLength(getDataVectors());
                 i++) {
                java.lang.Object obj = java.lang.reflect.Array.get(getDataVectors(), i);
                if (obj != null &&
                    !obj.getClass().isArray()) {
                    _hashCode += obj.hashCode();
                }
            }
        }
        __hashCodeCalc = false;
        return _hashCode;
    }

    // Type metadata
    private static org.apache.axis.description.TypeDesc typeDesc =
        new org.apache.axis.description.TypeDesc(DataMatrix.class, true);

    static {
        typeDesc.setXmlType(new javax.xml.namespace.QName("http://datatypes.webservice.wortschatz.uni_leipzig.de", "DataMatrix"));
        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
        elemField.setFieldName("dataVectors");
        elemField.setXmlName(new javax.xml.namespace.QName("http://datatypes.webservice.wortschatz.uni_leipzig.de", "dataVectors"));
        elemField.setXmlType(new javax.xml.namespace.QName("http://datatypes.webservice.wortschatz.uni_leipzig.de", "DataVector"));
        typeDesc.addFieldDesc(elemField);
    }

    /**
     * Return type metadata object
     */
    public static org.apache.axis.description.TypeDesc getTypeDesc() {
        return typeDesc;
    }

    /**
     * Get Custom Serializer
     */
    public static org.apache.axis.encoding.Serializer getSerializer(
           java.lang.String mechType,
           java.lang.Class _javaType,  
           javax.xml.namespace.QName _xmlType) {
        return
          new  org.apache.axis.encoding.ser.BeanSerializer(
            _javaType, _xmlType, typeDesc);
    }

    /**
     * Get Custom Deserializer
     */
    public static org.apache.axis.encoding.Deserializer getDeserializer(
           java.lang.String mechType,
           java.lang.Class _javaType,  
           javax.xml.namespace.QName _xmlType) {
        return
          new  org.apache.axis.encoding.ser.BeanDeserializer(
            _javaType, _xmlType, typeDesc);
    }

}

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

 <handler name="FrequencyOptions"
    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.OptionsHandler"/>

 <handler name="FrequencyAuthentication"
    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.UserAuthenticationHandler"/>

 <handler name="FrequencyAuthorization"
    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.UserAuthorizationHandler"/>


 <handler name="FrequencyCorpus"
    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.CorpusHandler"/>

 <!--handler name="FrequencyLogout"
    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.LogoutHandler"/-->


     

 <!-- provider="java:RPC" -->
 <service name="Frequency" style="wrapped" use="literal">
  <requestFlow>
  <handler type="soapmonitor"/>
   <handler type="FrequencyOptions"/>
   <handler type="FrequencyAuthentication"/>
   <handler type="FrequencyAuthorization"/>
   <handler type="FrequencyCorpus"/>
  </requestFlow>
  <responseFlow>
   <handler type="soapmonitor"/>
   <!--handler type="FrequencyLogout"/-->
  </responseFlow>
  <parameter name="className" value="de.uni_leipzig.wortschatz.webservice.webservices.Frequency"/>
  <parameter name="allowedMethods" value="*"/>
  <beanMapping qname="RequestparameterNS:RequestParameter" xmlns:RequestparameterNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.RequestParameter"/>
  <beanMapping qname="DataMatrixNS:DataMatrix" xmlns:DataMatrixNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataMatrix"/>
  <beanMapping qname="DataVectorNS:DataVector" xmlns:DataVectorNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataVector"/>
  <beanMapping qname="ResponseparameterNS:ResponseParameter" xmlns:ResponseparameterNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.ResponseParameter"/>
  <namespace>urn:Frequency</namespace>
 </service>

</deployment>
Reply | Threaded
Open this post in threaded view
|

Re: [problems with Axis-.NET interop]

Anne Thomas Manes
Please provide the WSDL.

On 5/6/05, Marco Büchler <[hidden email]> wrote:

> hi,
>
> we 're trying to install some services needing some more complex
> datatypes. first we tried an String[][] but we got some problems with
> this. so we tried to splitt String[][] into an datamatrix-objekt
> including an array of datavectors. an datavector has a
> string[]-array-field. se attachments. the deploy-script is attached, too.
>
> the soap-request-message using axis:
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <soapenv:Body>
>     <execute xmlns="urn:Frequency">
>       <objRequestParameters>
>         <corpus>de2</corpus>
>         <parameters>
>           <dataVectors>
>             <ns1:dataRow
> xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de">Wort</ns1:dataRow>
>             <ns2:dataRow
> xmlns:ns2="http://datatypes.webservice.wortschatz.uni_leipzig.de">suchen</ns2:dataRow>
>           </dataVectors>
>         </parameters>
>       </objRequestParameters>
>     </execute>
>   </soapenv:Body>
> </soapenv:Envelope>
>
> the soap-request-message using .NET:
> <?xml version="1.0" encoding="utf-8"?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>   <soap:Body>
>     <execute xmlns="urn:Frequency">
>       <objRequestParameters>
>         <corpus>de2</corpus>
>         <parameters>
>           <dataVectors>
>             <dataRow
> xmlns="http://datatypes.webservice.wortschatz.uni_leipzig.de">Wort</dataRow>
>             <dataRow
> xmlns="http://datatypes.webservice.wortschatz.uni_leipzig.de">suchen</dataRow>
>           </dataVectors>
>         </parameters>
>       </objRequestParameters>
>     </execute>
>   </soap:Body>
> </soap:Envelope>
>
> both request can axis handle. and the axis produce the following
> response-message:
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <soapenv:Body>
>     <executeResponse xmlns="urn:Frequency">
>       <executeReturn>
>         <result>
>           <ns1:dataVectors xsi:type="ns2:DataVector"
> xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de"
> xmlns:ns2="urn:Frequency">
>             <ns1:dataRow>46593</ns1:dataRow>
>             <ns1:dataRow>8</ns1:dataRow>
>           </ns1:dataVectors>
>         </result>
>       </executeReturn>
>     </executeResponse>
>   </soapenv:Body>
> </soapenv:Envelope>
>
> the axis-client work fine. the .NET-client can't handle this message and
> deserialize NULL.
>
> does anybody know what's wrong??? hints and solutions are welcome.
>
> regards
>
> ciao
> marco
>
>
> <deployment xmlns="http://xml.apache.org/axis/wsdd/"
>             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
>
>  <handler name="FrequencyOptions"
>     type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.OptionsHandler"/>
>
>  <handler name="FrequencyAuthentication"
>     type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.UserAuthenticationHandler"/>
>
>  <handler name="FrequencyAuthorization"
>     type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.UserAuthorizationHandler"/>
>
>  <handler name="FrequencyCorpus"
>     type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.CorpusHandler"/>
>
>  <!--handler name="FrequencyLogout"
>     type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.LogoutHandler"/-->
>
>  <!-- provider="java:RPC" -->
>  <service name="Frequency" style="wrapped" use="literal">
>   <requestFlow>
>   <handler type="soapmonitor"/>
>    <handler type="FrequencyOptions"/>
>    <handler type="FrequencyAuthentication"/>
>    <handler type="FrequencyAuthorization"/>
>    <handler type="FrequencyCorpus"/>
>   </requestFlow>
>   <responseFlow>
>    <handler type="soapmonitor"/>
>    <!--handler type="FrequencyLogout"/-->
>   </responseFlow>
>   <parameter name="className" value="de.uni_leipzig.wortschatz.webservice.webservices.Frequency"/>
>   <parameter name="allowedMethods" value="*"/>
>   <beanMapping qname="RequestparameterNS:RequestParameter" xmlns:RequestparameterNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.RequestParameter"/>
>   <beanMapping qname="DataMatrixNS:DataMatrix" xmlns:DataMatrixNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataMatrix"/>
>   <beanMapping qname="DataVectorNS:DataVector" xmlns:DataVectorNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataVector"/>
>   <beanMapping qname="ResponseparameterNS:ResponseParameter" xmlns:ResponseparameterNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.ResponseParameter"/>
>   <namespace>urn:Frequency</namespace>
>  </service>
>
> </deployment>
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [problems with Axis-.NET interop]

Marco Büchler
the wsdl file:

  <?xml version="1.0" encoding="UTF-8" ?>
- <#> <wsdl:definitions targetNamespace="*urn:Frequency*"
xmlns:apachesoap="*http://xml.apache.org/xml-soap*"
xmlns:impl="*urn:Frequency*" xmlns:intf="*urn:Frequency*"
xmlns:tns1="*http://datatypes.webservice.wortschatz.uni_leipzig.de*"
xmlns:wsdl="*http://schemas.xmlsoap.org/wsdl/*"
xmlns:wsdlsoap="*http://schemas.xmlsoap.org/wsdl/soap/*"
xmlns:xsd="*http://www.w3.org/2001/XMLSchema*">
- <#> <!--

WSDL created by Apache Axis version: 1.2RC3
Built on Mar 28, 2005 (10:34:47 CEST)

  -->
- <#> <wsdl:types>
- <#> <schema elementFormDefault="*qualified*"
targetNamespace="*urn:Frequency*"
xmlns="*http://www.w3.org/2001/XMLSchema*">
  <import
namespace="*http://datatypes.webservice.wortschatz.uni_leipzig.de*" />
- <#> <element name="*execute*">
- <#> <complexType>
- <#> <sequence>
  <element name="*objRequestParameters*" type="*impl:RequestParameter*" />
  </sequence>
  </complexType>
  </element>
- <#> <complexType name="*DataMatrix*">
- <#> <sequence>
  <element maxOccurs="*unbounded*" name="*dataVectors*"
type="*tns1:DataVector*" />
  </sequence>
  </complexType>
- <#> <complexType name="*RequestParameter*">
- <#> <sequence>
  <element name="*corpus*" nillable="*true*" type="*xsd:string*" />
  <element name="*parameters*" nillable="*true*"
type="*impl:DataMatrix*" />
  </sequence>
  </complexType>
- <#> <element name="*executeResponse*">
- <#> <complexType>
- <#> <sequence>
  <element name="*executeReturn*" type="*impl:ResponseParameter*" />
  </sequence>
  </complexType>
  </element>
- <#> <complexType name="*ResponseParameter*">
- <#> <sequence>
  <element name="*executionTime*" nillable="*true*" type="*xsd:string*" />
  <element name="*result*" nillable="*true*" type="*impl:DataMatrix*" />
  </sequence>
  </complexType>
- <#> <element name="*ping*">
  <complexType />
  </element>
- <#> <element name="*pingResponse*">
- <#> <complexType>
- <#> <sequence>
  <element name="*pingReturn*" type="*xsd:string*" />
  </sequence>
  </complexType>
  </element>
  </schema>
- <#> <schema elementFormDefault="*qualified*"
targetNamespace="*http://datatypes.webservice.wortschatz.uni_leipzig.de*"
xmlns="*http://www.w3.org/2001/XMLSchema*">
  <import namespace="*urn:Frequency*" />
- <#> <complexType name="*DataVector*">
- <#> <sequence>
  <element maxOccurs="*unbounded*" name="*dataRow*" type="*xsd:string*" />
  </sequence>
  </complexType>
  </schema>
  </wsdl:types>
- <#> <wsdl:message name="*executeResponse*">
  <wsdl:part element="*impl:executeResponse*" name="*parameters*" />
  </wsdl:message>
- <#> <wsdl:message name="*pingRequest*">
  <wsdl:part element="*impl:ping*" name="*parameters*" />
  </wsdl:message>
- <#> <wsdl:message name="*pingResponse*">
  <wsdl:part element="*impl:pingResponse*" name="*parameters*" />
  </wsdl:message>
- <#> <wsdl:message name="*executeRequest*">
  <wsdl:part element="*impl:execute*" name="*parameters*" />
  </wsdl:message>
- <#> <wsdl:portType name="*Frequency*">
- <#> <wsdl:operation name="*execute*">
  <wsdl:input message="*impl:executeRequest*" name="*executeRequest*" />
  <wsdl:output message="*impl:executeResponse*" name="*executeResponse*" />
  </wsdl:operation>
- <#> <wsdl:operation name="*ping*">
  <wsdl:input message="*impl:pingRequest*" name="*pingRequest*" />
  <wsdl:output message="*impl:pingResponse*" name="*pingResponse*" />
  </wsdl:operation>
  </wsdl:portType>
- <#> <wsdl:binding name="*FrequencySoapBinding*" type="*impl:Frequency*">
  <wsdlsoap:binding style="*document*"
transport="*http://schemas.xmlsoap.org/soap/http*" />
- <#> <wsdl:operation name="*execute*">
  <wsdlsoap:operation soapAction="" />
- <#> <wsdl:input name="*executeRequest*">
  <wsdlsoap:body use="*literal*" />
  </wsdl:input>
- <#> <wsdl:output name="*executeResponse*">
  <wsdlsoap:body use="*literal*" />
  </wsdl:output>
  </wsdl:operation>
- <#> <wsdl:operation name="*ping*">
  <wsdlsoap:operation soapAction="" />
- <#> <wsdl:input name="*pingRequest*">
  <wsdlsoap:body use="*literal*" />
  </wsdl:input>
- <#> <wsdl:output name="*pingResponse*">
  <wsdlsoap:body use="*literal*" />
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <#> <wsdl:service name="*FrequencyService*">
- <#> <wsdl:port binding="*impl:FrequencySoapBinding*" name="*Frequency*">
  <wsdlsoap:address
location="*http://aspra20.informatik.uni-leipzig.de:8888/axis/services/Frequency*"
/>
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>

ciao
marco

Anne Thomas Manes schrieb:

>Please provide the WSDL.
>
>On 5/6/05, Marco B?chler <[hidden email]> wrote:
>  
>
>>hi,
>>
>>we 're trying to install some services needing some more complex
>>datatypes. first we tried an String[][] but we got some problems with
>>this. so we tried to splitt String[][] into an datamatrix-objekt
>>including an array of datavectors. an datavector has a
>>string[]-array-field. se attachments. the deploy-script is attached, too.
>>
>>the soap-request-message using axis:
>><?xml version="1.0" encoding="utf-8"?>
>><soapenv:Envelope
>>xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>>xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>>  <soapenv:Body>
>>    <execute xmlns="urn:Frequency">
>>      <objRequestParameters>
>>        <corpus>de2</corpus>
>>        <parameters>
>>          <dataVectors>
>>            <ns1:dataRow
>>xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de">Wort</ns1:dataRow>
>>            <ns2:dataRow
>>xmlns:ns2="http://datatypes.webservice.wortschatz.uni_leipzig.de">suchen</ns2:dataRow>
>>          </dataVectors>
>>        </parameters>
>>      </objRequestParameters>
>>    </execute>
>>  </soapenv:Body>
>></soapenv:Envelope>
>>
>>the soap-request-message using .NET:
>><?xml version="1.0" encoding="utf-8"?>
>><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>  <soap:Body>
>>    <execute xmlns="urn:Frequency">
>>      <objRequestParameters>
>>        <corpus>de2</corpus>
>>        <parameters>
>>          <dataVectors>
>>            <dataRow
>>xmlns="http://datatypes.webservice.wortschatz.uni_leipzig.de">Wort</dataRow>
>>            <dataRow
>>xmlns="http://datatypes.webservice.wortschatz.uni_leipzig.de">suchen</dataRow>
>>          </dataVectors>
>>        </parameters>
>>      </objRequestParameters>
>>    </execute>
>>  </soap:Body>
>></soap:Envelope>
>>
>>both request can axis handle. and the axis produce the following
>>response-message:
>><?xml version="1.0" encoding="UTF-8"?>
>><soapenv:Envelope
>>xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>>xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>>  <soapenv:Body>
>>    <executeResponse xmlns="urn:Frequency">
>>      <executeReturn>
>>        <result>
>>          <ns1:dataVectors xsi:type="ns2:DataVector"
>>xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de"
>>xmlns:ns2="urn:Frequency">
>>            <ns1:dataRow>46593</ns1:dataRow>
>>            <ns1:dataRow>8</ns1:dataRow>
>>          </ns1:dataVectors>
>>        </result>
>>      </executeReturn>
>>    </executeResponse>
>>  </soapenv:Body>
>></soapenv:Envelope>
>>
>>the axis-client work fine. the .NET-client can't handle this message and
>>deserialize NULL.
>>
>>does anybody know what's wrong??? hints and solutions are welcome.
>>
>>regards
>>
>>ciao
>>marco
>>
>>
>><deployment xmlns="http://xml.apache.org/axis/wsdd/"
>>            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
>>
>> <handler name="FrequencyOptions"
>>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.OptionsHandler"/>
>>
>> <handler name="FrequencyAuthentication"
>>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.UserAuthenticationHandler"/>
>>
>> <handler name="FrequencyAuthorization"
>>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.UserAuthorizationHandler"/>
>>
>> <handler name="FrequencyCorpus"
>>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.CorpusHandler"/>
>>
>> <!--handler name="FrequencyLogout"
>>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.LogoutHandler"/-->
>>
>> <!-- provider="java:RPC" -->
>> <service name="Frequency" style="wrapped" use="literal">
>>  <requestFlow>
>>  <handler type="soapmonitor"/>
>>   <handler type="FrequencyOptions"/>
>>   <handler type="FrequencyAuthentication"/>
>>   <handler type="FrequencyAuthorization"/>
>>   <handler type="FrequencyCorpus"/>
>>  </requestFlow>
>>  <responseFlow>
>>   <handler type="soapmonitor"/>
>>   <!--handler type="FrequencyLogout"/-->
>>  </responseFlow>
>>  <parameter name="className" value="de.uni_leipzig.wortschatz.webservice.webservices.Frequency"/>
>>  <parameter name="allowedMethods" value="*"/>
>>  <beanMapping qname="RequestparameterNS:RequestParameter" xmlns:RequestparameterNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.RequestParameter"/>
>>  <beanMapping qname="DataMatrixNS:DataMatrix" xmlns:DataMatrixNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataMatrix"/>
>>  <beanMapping qname="DataVectorNS:DataVector" xmlns:DataVectorNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataVector"/>
>>  <beanMapping qname="ResponseparameterNS:ResponseParameter" xmlns:ResponseparameterNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.ResponseParameter"/>
>>  <namespace>urn:Frequency</namespace>
>> </service>
>>
>></deployment>
>>
>>
>>
>>
>>    
>>
>
>
>  
>

Reply | Threaded
Open this post in threaded view
|

Re: [problems with Axis-.NET interop]

Anne Thomas Manes
Marco,

Your response message doesn't match the WSDL, which explains why .NET
can't interpret it. According to your WSDL the response message should
look like this:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
   <executeResponse xmlns="urn:Frequency">
     <executeReturn>
       <result>
         <dataVectors
xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de">
           <ns1:dataRow>46593</ns1:dataRow>
           <ns1:dataRow>8</ns1:dataRow>
         </ns1:dataVectors>
       </result>
     </executeReturn>
   </executeResponse>
 </soapenv:Body>
</soapenv:Envelope>

(Axis put dataVectors in the wrong namespace, and because you defined
the dataVectors element as nillable, .NET assumed that you didn't
return a dataVector and therefore returned null.)

Restart Axis and try redeploying the service one more time just to
make sure that something hasn't been changed somewhere along the way.
If you still get this error, please log a bug.

I'm not quite sure why Axis generated the DataVector type in a
separate namespace -- your beanMapping says you want it in the
urn:Frequency namespace:

<beanMapping qname="DataVectorNS:DataVector"
xmlns:DataVectorNS="urn:Frequency"
languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataVector"/>

Of course, I recommend that you adopt the WSDL First (tm) approach, in
which case your WSDL would dictate the show and ensure much better
interop.

Anne

Anne

On 5/6/05, Marco Büchler <[hidden email]> wrote:

> the wsdl file:
>
>   <?xml version="1.0" encoding="UTF-8" ?>
> - <#> <wsdl:definitions targetNamespace="*urn:Frequency*"
> xmlns:apachesoap="*http://xml.apache.org/xml-soap*"
> xmlns:impl="*urn:Frequency*" xmlns:intf="*urn:Frequency*"
> xmlns:tns1="*http://datatypes.webservice.wortschatz.uni_leipzig.de*"
> xmlns:wsdl="*http://schemas.xmlsoap.org/wsdl/*"
> xmlns:wsdlsoap="*http://schemas.xmlsoap.org/wsdl/soap/*"
> xmlns:xsd="*http://www.w3.org/2001/XMLSchema*">
> - <#> <!--
>
> WSDL created by Apache Axis version: 1.2RC3
> Built on Mar 28, 2005 (10:34:47 CEST)
>
>   -->
> - <#> <wsdl:types>
> - <#> <schema elementFormDefault="*qualified*"
> targetNamespace="*urn:Frequency*"
> xmlns="*http://www.w3.org/2001/XMLSchema*">
>   <import
> namespace="*http://datatypes.webservice.wortschatz.uni_leipzig.de*" />
> - <#> <element name="*execute*">
> - <#> <complexType>
> - <#> <sequence>
>   <element name="*objRequestParameters*" type="*impl:RequestParameter*" />
>   </sequence>
>   </complexType>
>   </element>
> - <#> <complexType name="*DataMatrix*">
> - <#> <sequence>
>   <element maxOccurs="*unbounded*" name="*dataVectors*"
> type="*tns1:DataVector*" />
>   </sequence>
>   </complexType>
> - <#> <complexType name="*RequestParameter*">
> - <#> <sequence>
>   <element name="*corpus*" nillable="*true*" type="*xsd:string*" />
>   <element name="*parameters*" nillable="*true*"
> type="*impl:DataMatrix*" />
>   </sequence>
>   </complexType>
> - <#> <element name="*executeResponse*">
> - <#> <complexType>
> - <#> <sequence>
>   <element name="*executeReturn*" type="*impl:ResponseParameter*" />
>   </sequence>
>   </complexType>
>   </element>
> - <#> <complexType name="*ResponseParameter*">
> - <#> <sequence>
>   <element name="*executionTime*" nillable="*true*" type="*xsd:string*" />
>   <element name="*result*" nillable="*true*" type="*impl:DataMatrix*" />
>   </sequence>
>   </complexType>
> - <#> <element name="*ping*">
>   <complexType />
>   </element>
> - <#> <element name="*pingResponse*">
> - <#> <complexType>
> - <#> <sequence>
>   <element name="*pingReturn*" type="*xsd:string*" />
>   </sequence>
>   </complexType>
>   </element>
>   </schema>
> - <#> <schema elementFormDefault="*qualified*"
> targetNamespace="*http://datatypes.webservice.wortschatz.uni_leipzig.de*"
> xmlns="*http://www.w3.org/2001/XMLSchema*">
>   <import namespace="*urn:Frequency*" />
> - <#> <complexType name="*DataVector*">
> - <#> <sequence>
>   <element maxOccurs="*unbounded*" name="*dataRow*" type="*xsd:string*" />
>   </sequence>
>   </complexType>
>   </schema>
>   </wsdl:types>
> - <#> <wsdl:message name="*executeResponse*">
>   <wsdl:part element="*impl:executeResponse*" name="*parameters*" />
>   </wsdl:message>
> - <#> <wsdl:message name="*pingRequest*">
>   <wsdl:part element="*impl:ping*" name="*parameters*" />
>   </wsdl:message>
> - <#> <wsdl:message name="*pingResponse*">
>   <wsdl:part element="*impl:pingResponse*" name="*parameters*" />
>   </wsdl:message>
> - <#> <wsdl:message name="*executeRequest*">
>   <wsdl:part element="*impl:execute*" name="*parameters*" />
>   </wsdl:message>
> - <#> <wsdl:portType name="*Frequency*">
> - <#> <wsdl:operation name="*execute*">
>   <wsdl:input message="*impl:executeRequest*" name="*executeRequest*" />
>   <wsdl:output message="*impl:executeResponse*" name="*executeResponse*" />
>   </wsdl:operation>
> - <#> <wsdl:operation name="*ping*">
>   <wsdl:input message="*impl:pingRequest*" name="*pingRequest*" />
>   <wsdl:output message="*impl:pingResponse*" name="*pingResponse*" />
>   </wsdl:operation>
>   </wsdl:portType>
> - <#> <wsdl:binding name="*FrequencySoapBinding*" type="*impl:Frequency*">
>   <wsdlsoap:binding style="*document*"
> transport="*http://schemas.xmlsoap.org/soap/http*" />
> - <#> <wsdl:operation name="*execute*">
>   <wsdlsoap:operation soapAction="" />
> - <#> <wsdl:input name="*executeRequest*">
>   <wsdlsoap:body use="*literal*" />
>   </wsdl:input>
> - <#> <wsdl:output name="*executeResponse*">
>   <wsdlsoap:body use="*literal*" />
>   </wsdl:output>
>   </wsdl:operation>
> - <#> <wsdl:operation name="*ping*">
>   <wsdlsoap:operation soapAction="" />
> - <#> <wsdl:input name="*pingRequest*">
>   <wsdlsoap:body use="*literal*" />
>   </wsdl:input>
> - <#> <wsdl:output name="*pingResponse*">
>   <wsdlsoap:body use="*literal*" />
>   </wsdl:output>
>   </wsdl:operation>
>   </wsdl:binding>
> - <#> <wsdl:service name="*FrequencyService*">
> - <#> <wsdl:port binding="*impl:FrequencySoapBinding*" name="*Frequency*">
>   <wsdlsoap:address
> location="*http://aspra20.informatik.uni-leipzig.de:8888/axis/services/Frequency*"
> />
>   </wsdl:port>
>   </wsdl:service>
>   </wsdl:definitions>
>
> ciao
> marco
>
> Anne Thomas Manes schrieb:
>
> >Please provide the WSDL.
> >
> >On 5/6/05, Marco Büchler <[hidden email]> wrote:
> >
> >
> >>hi,
> >>
> >>we 're trying to install some services needing some more complex
> >>datatypes. first we tried an String[][] but we got some problems with
> >>this. so we tried to splitt String[][] into an datamatrix-objekt
> >>including an array of datavectors. an datavector has a
> >>string[]-array-field. se attachments. the deploy-script is attached, too.
> >>
> >>the soap-request-message using axis:
> >><?xml version="1.0" encoding="utf-8"?>
> >><soapenv:Envelope
> >>xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> >>xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >>  <soapenv:Body>
> >>    <execute xmlns="urn:Frequency">
> >>      <objRequestParameters>
> >>        <corpus>de2</corpus>
> >>        <parameters>
> >>          <dataVectors>
> >>            <ns1:dataRow
> >>xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de">Wort</ns1:dataRow>
> >>            <ns2:dataRow
> >>xmlns:ns2="http://datatypes.webservice.wortschatz.uni_leipzig.de">suchen</ns2:dataRow>
> >>          </dataVectors>
> >>        </parameters>
> >>      </objRequestParameters>
> >>    </execute>
> >>  </soapenv:Body>
> >></soapenv:Envelope>
> >>
> >>the soap-request-message using .NET:
> >><?xml version="1.0" encoding="utf-8"?>
> >><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> >>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >>  <soap:Body>
> >>    <execute xmlns="urn:Frequency">
> >>      <objRequestParameters>
> >>        <corpus>de2</corpus>
> >>        <parameters>
> >>          <dataVectors>
> >>            <dataRow
> >>xmlns="http://datatypes.webservice.wortschatz.uni_leipzig.de">Wort</dataRow>
> >>            <dataRow
> >>xmlns="http://datatypes.webservice.wortschatz.uni_leipzig.de">suchen</dataRow>
> >>          </dataVectors>
> >>        </parameters>
> >>      </objRequestParameters>
> >>    </execute>
> >>  </soap:Body>
> >></soap:Envelope>
> >>
> >>both request can axis handle. and the axis produce the following
> >>response-message:
> >><?xml version="1.0" encoding="UTF-8"?>
> >><soapenv:Envelope
> >>xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> >>xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >>  <soapenv:Body>
> >>    <executeResponse xmlns="urn:Frequency">
> >>      <executeReturn>
> >>        <result>
> >>          <ns1:dataVectors xsi:type="ns2:DataVector"
> >>xmlns:ns1="http://datatypes.webservice.wortschatz.uni_leipzig.de"
> >>xmlns:ns2="urn:Frequency">
> >>            <ns1:dataRow>46593</ns1:dataRow>
> >>            <ns1:dataRow>8</ns1:dataRow>
> >>          </ns1:dataVectors>
> >>        </result>
> >>      </executeReturn>
> >>    </executeResponse>
> >>  </soapenv:Body>
> >></soapenv:Envelope>
> >>
> >>the axis-client work fine. the .NET-client can't handle this message and
> >>deserialize NULL.
> >>
> >>does anybody know what's wrong??? hints and solutions are welcome.
> >>
> >>regards
> >>
> >>ciao
> >>marco
> >>
> >>
> >><deployment xmlns="http://xml.apache.org/axis/wsdd/"
> >>            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> >>
> >> <handler name="FrequencyOptions"
> >>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.OptionsHandler"/>
> >>
> >> <handler name="FrequencyAuthentication"
> >>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.UserAuthenticationHandler"/>
> >>
> >> <handler name="FrequencyAuthorization"
> >>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.UserAuthorizationHandler"/>
> >>
> >> <handler name="FrequencyCorpus"
> >>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.CorpusHandler"/>
> >>
> >> <!--handler name="FrequencyLogout"
> >>    type="java:de.uni_leipzig.wortschatz.webservice.usermanagement.handler.LogoutHandler"/-->
> >>
> >> <!-- provider="java:RPC" -->
> >> <service name="Frequency" style="wrapped" use="literal">
> >>  <requestFlow>
> >>  <handler type="soapmonitor"/>
> >>   <handler type="FrequencyOptions"/>
> >>   <handler type="FrequencyAuthentication"/>
> >>   <handler type="FrequencyAuthorization"/>
> >>   <handler type="FrequencyCorpus"/>
> >>  </requestFlow>
> >>  <responseFlow>
> >>   <handler type="soapmonitor"/>
> >>   <!--handler type="FrequencyLogout"/-->
> >>  </responseFlow>
> >>  <parameter name="className" value="de.uni_leipzig.wortschatz.webservice.webservices.Frequency"/>
> >>  <parameter name="allowedMethods" value="*"/>
> >>  <beanMapping qname="RequestparameterNS:RequestParameter" xmlns:RequestparameterNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.RequestParameter"/>
> >>  <beanMapping qname="DataMatrixNS:DataMatrix" xmlns:DataMatrixNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataMatrix"/>
> >>  <beanMapping qname="DataVectorNS:DataVector" xmlns:DataVectorNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.DataVector"/>
> >>  <beanMapping qname="ResponseparameterNS:ResponseParameter" xmlns:ResponseparameterNS="urn:Frequency" languageSpecificType="java:de.uni_leipzig.wortschatz.webservice.datatypes.ResponseParameter"/>
> >>  <namespace>urn:Frequency</namespace>
> >> </service>
> >>
> >></deployment>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
> >
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Turning off ?wsdl feature

aedemar.cooke
In reply to this post by Marco Büchler
I looked at historic mails as I remember someone asking how to turn off the ?wsdl feature.  All I could find was a reference to some article that no longer exists.  

Can someone please explain how to turn this feature off.

Thanks.
__________________________________________________________________________________________________________________________________

This e-mail may be privileged and/or confidential, and the sender does not waive any related rights and obligations.
Any distribution, use or copying of this e-mail or the information it contains by other than an intended recipient is unauthorized.
If you received this e-mail in error, please advise me (by return e-mail or otherwise) immediately.  

Ce courrier électronique est confidentiel et protégé. L'expéditeur ne renonce pas aux droits et obligations qui s'y rapportent.
Toute diffusion, utilisation ou copie de ce message ou des renseignements qu'il contient par une personne autre que le (les) destinataire(s) désigné(s) est interdite.
Si vous recevez ce courrier électronique par erreur, veuillez m'en aviser immédiatement, par retour de courrier électronique ou par un autre moyen.
Reply | Threaded
Open this post in threaded view
|

Re: Turning off ?wsdl feature

Jeff Greif
Here's a way that's not too pretty:

You can specify a <wsdlFile>some-filename</wsdlFile> option in your
deployment descriptor, which is used to satisfy the ?wsdl suffix to the
URL of the relevant service.  You could either have no file at the
specified location (which would probably cause an exception in Axis and
an 404 HTTP status returned to the client) or you could provide a file
the contents of which were a message to the effect of "Sorry, no wsdl
provided for this service."

Jeff

[hidden email] wrote:

>I looked at historic mails as I remember someone asking how to turn off the ?wsdl feature.  All I could find was a reference to some article that no longer exists.  
>
>Can someone please explain how to turn this feature off.
>
>  
>

Reply | Threaded
Open this post in threaded view
|

Re: Turning off ?wsdl feature

Tim K. (Gmane)
I wanted to do the same and more, e.g. prevent listing all the services
and their methods when you go to the servlet's mount point, prevent
requests to the AdminService, etc. At least for some of the cases there
are global configuration options in Axis, but it didn't seem to work,
see this bug that I filed:

http://issues.apache.org/jira/browse/AXIS-1932

So I gave up on global configuration properties and instead wrote a
simple servlet filter that checks there are no query parameters and
getPathInfo() is not null and it's among a list of services that I know
are deployed by me (I want to also prevent the AdminService from being
invoked). In other words just allow the minimum required services, for
security reasons.

I think this is the best way to do it, it gives you full control over
what requests you want to allow and what you want to deny.

Tim



Jeff Greif wrote:

> Here's a way that's not too pretty:
>
> You can specify a <wsdlFile>some-filename</wsdlFile> option in your
> deployment descriptor, which is used to satisfy the ?wsdl suffix to
> the URL of the relevant service.  You could either have no file at the
> specified location (which would probably cause an exception in Axis
> and an 404 HTTP status returned to the client) or you could provide a
> file the contents of which were a message to the effect of "Sorry, no
> wsdl provided for this service."
>
> Jeff
>
> [hidden email] wrote:
>
>> I looked at historic mails as I remember someone asking how to turn
>> off the ?wsdl feature.  All I could find was a reference to some
>> article that no longer exists.
>> Can someone please explain how to turn this feature off.
>>
>>  
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Turning off ?wsdl feature

dims
In reply to this post by Jeff Greif
see org.apache.axis.transport.http.QSWSDLHandler.java. you can write
your own wsdl handler and stick into the transport (in
server-config.wsdd)

-- dims

On 5/6/05, Jeff Greif <[hidden email]> wrote:

> Here's a way that's not too pretty:
>
> You can specify a <wsdlFile>some-filename</wsdlFile> option in your
> deployment descriptor, which is used to satisfy the ?wsdl suffix to the
> URL of the relevant service.  You could either have no file at the
> specified location (which would probably cause an exception in Axis and
> an 404 HTTP status returned to the client) or you could provide a file
> the contents of which were a message to the effect of "Sorry, no wsdl
> provided for this service."
>
> Jeff
>
> [hidden email] wrote:
>
> >I looked at historic mails as I remember someone asking how to turn off the ?wsdl feature.  All I could find was a reference to some article that no longer exists.
> >
> >Can someone please explain how to turn this feature off.
> >
> >
> >
>
>


--
Davanum Srinivas - http://webservices.apache.org/~dims/
Reply | Threaded
Open this post in threaded view
|

Re: Turning off ?wsdl feature

dims
In reply to this post by Tim K. (Gmane)
Please take a look at QSListHandler and QSWSDLHandler code

-- dims

On 5/6/05, Tim K. (Gmane) <[hidden email]> wrote:

> I wanted to do the same and more, e.g. prevent listing all the services
> and their methods when you go to the servlet's mount point, prevent
> requests to the AdminService, etc. At least for some of the cases there
> are global configuration options in Axis, but it didn't seem to work,
> see this bug that I filed:
>
> http://issues.apache.org/jira/browse/AXIS-1932
>
> So I gave up on global configuration properties and instead wrote a
> simple servlet filter that checks there are no query parameters and
> getPathInfo() is not null and it's among a list of services that I know
> are deployed by me (I want to also prevent the AdminService from being
> invoked). In other words just allow the minimum required services, for
> security reasons.
>
> I think this is the best way to do it, it gives you full control over
> what requests you want to allow and what you want to deny.
>
> Tim
>
>
> Jeff Greif wrote:
>
> > Here's a way that's not too pretty:
> >
> > You can specify a <wsdlFile>some-filename</wsdlFile> option in your
> > deployment descriptor, which is used to satisfy the ?wsdl suffix to
> > the URL of the relevant service.  You could either have no file at the
> > specified location (which would probably cause an exception in Axis
> > and an 404 HTTP status returned to the client) or you could provide a
> > file the contents of which were a message to the effect of "Sorry, no
> > wsdl provided for this service."
> >
> > Jeff
> >
> > [hidden email] wrote:
> >
> >> I looked at historic mails as I remember someone asking how to turn
> >> off the ?wsdl feature.  All I could find was a reference to some
> >> article that no longer exists.
> >> Can someone please explain how to turn this feature off.
> >>
> >>
> >>
> >
> >
>
>


--
Davanum Srinivas - http://webservices.apache.org/~dims/
Reply | Threaded
Open this post in threaded view
|

RE: Turning off ?wsdl feature

Dill, Jens (END-CHI)
In reply to this post by aedemar.cooke
> You can specify a <wsdlFile>some-filename</wsdlFile> option in your
> deployment descriptor, which is used to satisfy the ?wsdl suffix to the
> URL of the relevant service.

Is this documented anywhere?  Can you give explicit, detailed examples?

I have tried to do this, using AXIS 1.2rc2, without success.  I've tried
putting the <wsdlFile>some-filename</wsdlFile> at different places within
the <service> element of the wsdd, and I've tried putting the wsdl file
at different places in the directory structure (in the webapp directory,
in webapp/WEB-INF, in webapp/WEB-INF/classes).  No matter what I do,
when I click on the "wsdl?" for the service, I get "HTTP 500 - Internal
Server Error"

Come to think of it, I haven't been able to find any documentation
anywhere to tell me about the structure and usage of the wsdd file
or any of its elements.  Does any such documentation exist, or are
we all working from hearsay and source code?

                                         -- Jens Dill

-----Original Message-----
From: Jeff Greif [mailto:[hidden email]]
Sent: Friday, May 06, 2005 7:51 AM
To: [hidden email]
Subject: Re: Turning off ?wsdl feature


Here's a way that's not too pretty:

You can specify a <wsdlFile>some-filename</wsdlFile> option in your
deployment descriptor, which is used to satisfy the ?wsdl suffix to the
URL of the relevant service.  You could either have no file at the
specified location (which would probably cause an exception in Axis and
an 404 HTTP status returned to the client) or you could provide a file
the contents of which were a message to the effect of "Sorry, no wsdl
provided for this service."

Jeff

[hidden email] wrote:

>I looked at historic mails as I remember someone asking how to turn off the
?wsdl feature.  All I could find was a reference to some article that no
longer exists.  
>
>Can someone please explain how to turn this feature off.
>
>  
>