Here's the template I'm using and ant target.

=========================
axis-wsdd.xdt
=========================

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"; 
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
 <globalConfiguration>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="axis.sendMinimizedElements" value="true"/>
 </globalConfiguration>
 <handler name="LocalResponder" 
type="java:org.apache.axis.transport.local.LocalResponder"/>
 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <handler name="Authenticate" 
type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <XDtClass:forAllClasses>
 
   <XDtClass:ifHasClassTag tagName="mycompany.service-object">
 <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
qname="ns:<XDtClass:className/>" 
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
type="java:<XDtClass:fullClassName/>" xmlns:ns="http://model.spike.mycompany.com.au"/>
   </XDtClass:ifHasClassTag>
   
 </XDtClass:forAllClasses>
 
 <XDtClass:forAllClasses>
  <XDtClass:ifIsClassAbstract>
   <XDtClass:ifHasClassTag tagName="mycompany.service" paramName="springBeanName">
 <service name="<XDtClass:className/>" provider="Handler">
  <parameter name="allowedMethods" value="*"/>
  <parameter name="wsdlPortType" value="<XDtClass:className/>"/>
  <parameter name="springBeanName" value="<XDtClass:classTagValue 
tagName=mycompany.service' paramName='springBeanName'/>"/>
  <parameter name="interfaceName" value="<XDtClass:fullClassName/>"/>
  <parameter name="handlerClass" 
value="au.com.mycompany.spike.webservice.axis.SpringBeanProvider"/>
  <parameter name="wsdlServicePort" value="<XDtClass:className/>"/>
  <parameter name="wsdlTargetNamespace" value="http://service.spike.mycompany.com.au"/>
  <parameter name="wsdlServiceElement" value="<XDtClass:className/>"/>
 </service>
  </XDtClass:ifHasClassTag>
 </XDtClass:ifIsClassAbstract>
</XDtClass:forAllClasses>
 
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>
</deployment>

=====================
build.xml
=====================
<target name = "webapp-generate-wsdd" 
          description = "Uses XDoclet to generate the server-config.wsdd file"
          depends = "compile">
                
                <templatedoclet destdir="${WEB-INF}" verbose="1" excludedtags="author">
                <fileset dir="${src}">
                    <include name="**/*.java" />
                </fileset>
        
                <template templateFile="${src.config}/axis-wsdd.xdt" 
destinationFile="server-config.wsdd"/>
        
             </templatedoclet>
        </target>



-----Original Message-----
From: Dan Ciarniello [mailto:[EMAIL PROTECTED]
Sent: Tuesday, 19 October 2004 10:22 AM
To: [EMAIL PROTECTED]
Subject: Re: WSDL2Java and deploy.wsdd


Nathan Wardle wrote:

>Hi Dan,
>
>I had similar problems because I wanted to use a custom provider. My solution was to 
>not use WSDL2Java for the generation of server side code. Instead, I used XDoclet to 
>generate the deploy.wsdd (well actually I just generated the server-config.wsdd for 
>all services. This works really well because all I have to do is put a couple of tags 
>in my classes and I can generate service definitions as well as typemappings etc. I 
>also now know that what I'm deploying is truly related to my code and if the code 
>changes, so will the deployment descriptor.
>
>Nathan
>
>  
>
Thanks for the info, Nathan.

I had taken a quick look at XDoclet this morning but at first glance it 
didn't look like it would do this.  I guess I'll look more closely.

Dan.

Reply via email to