I think of it this way:
 
Axis is essentially a servlet, and you deploy it in a WAR via the WEB-INF/web.xml deployment descriptor.
 
Well, how do you tell Axis what services to deploy?
 
The Axis WEB-INF/server-config.wsdd deployment descriptor tells Axis what classes to deploy as services and which classes to map to which WSDL (XML Schema) types when the AxisServlet starts up (servlet init).
 
-Jon
 
-----Original Message-----
From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 17, 2004 8:16 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: RE: purpose/usage of .wsdd file

A WSDL file describes the service from the client’s point of view – it specifies the name of each operation, and the format and encoding of the message

A WSDD file describes the service from the runtime server’s point of view – it provides information that the runtime server uses to process the requested operation. It must know which provider to use (provider=”java:RPC|java:EJB|java:MSG|custom”), how to map the message contents to Java objects (style, use, and any custom serializers), what class to load, and what method to invoke for each message type. The WSDD provides this information.

 

The information in the WSDD has to correspond to the information in the WSDL.

 

As a convenience, Axis can auto-generate the WSDL for a service based on the information you specify in the WSDD – but as a general best practice, you should define your WSDL first and generate your service from the WSDL.

 

See http://www.osmoticweb.com/axis-wsdd/ for more info on the WSDD.

 

Anne

 


From: pyounguk cho [mailto:[EMAIL PROTECTED]]
Sent
: Thursday, June 17, 2004 4:00 PM
To: [EMAIL PROTECTED]|
Subject: purpose/usage of .wsdd file

 

Hello,

    Could anybody explain what deployment.wsdd file is for? Is it used to generate wsdl file on the fly? Or, is it used to map and resolve runtime information necessary to process each soap request sent to deployed services? 

 

    The answer to the above question will help clarify what kind of information one needs to put in the deployment.wsdd file. For instance, I am having trouble deploying document-literal web services, whose root cause seems to have to do with lack of entries in the wsdd file, and I feel completely clueless. I am using Axis 1.2 beta running on tomcat 5.0.25 on Redhat.

 

    Here is what I have done so far. I need to create and deploy document-literal style web services out of an existing wsdl file. It has operations that use message parts of complex types wrapped as elements for both input and output. I

    - generated jax-rpc client stub and service skeleton using wsdl2java ant task from the predefined wsdl file

    - created a service class that implements the generated service skeleton

    - composed a .wsdd file with <wsdlFile> tag for the purpose of using the orignial wsdl

    - deployed the service using admin-client with .wsdd file and compiled jar file

    - created a client class that uses the generated Locator/Stub

  

    When running the client, I've got a "No Such operation..." error. After searching the axis mailinglist, I added <operation> element under the <service> with name spaces. With that, I've got another error:"org.apache.axis.InternalException: java.lang.Exception: The OperationDesc for ws1 was not synchronized to a method of foo.ServiceImpl".

 

    Now the question is what more I need to put in the .wsdd file? When I want to use my wsdl file instead of the one genererated by axis, how does it affect the runtime behavior to specify values for, for instance, "style" and "use" attribute in <service> element?  How about <wsdlTargetNamespace> or <operation> elements? Do I need to add <typemapping> element for each schema definition in the wsdl file and every class generated by wsdl2java spelling out all the (de)serializers? Does Axis runtime look into the wsdl file before/after server-config.wsdd?

 

    If anybody has any ideas what went wrong in my steps or can pass me any pointer to useful .wsdd reference manual, it will be appreciated. Composing deploy.wsdd would be more straigtforward if Axis separates items for wsdl generation from those for processing requests.

 

Regards,

Pyounguk

 

 

Reply via email to