As I posted a few hours ago, I am working on my first ever web
service.  The server, Apache and Axis2/C of course, the client is a
C#.Net application.

I have the server compiled and it shows up when I consult the list of
services on the Apache web server.  I built a C# client to call the
Web Service and an exception was thrown:

DLL description has invalid state of not having valid DLL create
function, of valid delete function or valid dll_handler

I did some searching and found that it is an error from Axis2/C:
AXIS2_ERROR_INVALID_STATE_DLL_DESC

I am clueless at what the problem is.

One thing, which I don't know if it is related is this concept of "the
wrapped convention".  I have Tong Ka Iok's book "Developing Web
Services with Apache Axis2" that is Java based.  In chapter 5 he talks
about wrapping the web service so that it appears to the client like a
normal function rather then taking one object and returning another.
He goes on at the end of the chapter and state that .Net requires
services to be wrapped.  In the middle of the chapter it looks like he
had to do some thing to setup Axis2 to handle the wrapped service, but
it looks like it is Java related.  Is there anything special I need to
do for Axis2/C to wrap a service?  Being new at this whole thing, I
hope it is ok, but I am going to attach my WSDL, too, just to make
sure I have it wrapped correct.

Sam
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:tns="urn:mmpp:nodemanager" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="NodeManager" targetNamespace="urn:mmpp:nodemanager">
  <wsdl:types>
    <xsd:schema targetNamespace="urn:mmpp:nodemanager">
      
      <xsd:element name="getChildren">
        <xsd:complexType>
          <xsd:sequence>
          	<xsd:element name="nodeId" type="xsd:string" />
          	<xsd:element name="userId" type="xsd:string"></xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      
      <xsd:element name="getChildrenResponse">
        <xsd:complexType>
          <xsd:sequence>
          	<xsd:element name="isImageGallery" type="xsd:boolean" />
          	<xsd:element name="node" type="tns:NodeType" maxOccurs="unbounded" minOccurs="0"></xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
   
      <xsd:complexType name="NodeType">
      	<xsd:attribute name="nodeId" type="xsd:string"></xsd:attribute>
      	<xsd:attribute name="name" type="xsd:string"></xsd:attribute>
      </xsd:complexType>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="getChildrenRequest">
    <wsdl:part element="tns:getChildren" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="getChildrenResponse">
    <wsdl:part element="tns:getChildrenResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:portType name="NodeManager">
    <wsdl:operation name="getChildren">
      <wsdl:input message="tns:getChildrenRequest"/>
      <wsdl:output message="tns:getChildrenResponse"/>
    </wsdl:operation>

  </wsdl:portType>
  
  <wsdl:binding name="NodeManagerSOAP" type="tns:NodeManager">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getChildren">
      <soap:operation soapAction="urn:mmpp:nodemanager/NewOperation"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="NodeManager">
    <wsdl:port binding="tns:NodeManagerSOAP" name="NodeManagerSOAP">
      <soap:address location="http://localhost/axis2/services/NodeManager"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Reply via email to