Title: Message
Hi Dr. Jung,
                Just a quick heads up on how I got on with the parameter problem.
 
Basically I amended the jboss-net-ejb.xml.xdt xdoclet template to include an extra xdoclet method tag @jboss-net:wsdd-operation.
I stuck the following xdoclet code between the tags that generated the  allowed-methods parameter and the request flow parameter.
 
***************************************************************************
 
    <XDtMethod:forAllMethods>
     <XDtMethod:ifHasMethodTag tagName="jboss-net:wsdd-operation">
 <operation name="<XDtEjbIntf:interfaceMethodName/>"<XDtMethod:ifHasMethodTag tagName='jboss-net:wsdd-operation' paramName='returnQName'> returnQName="<XDtMethod:methodTagValue tagName='jboss-net:wsdd-operation' paramName='returnQName'/>"</XDtMethod:ifHasMethodTag>>   
  <XDtParameter:forAllMethodParams>
   <parameter name="<XDtParameter:methodParamName/>"/>
  </XDtParameter:forAllMethodParams>
 </operation>
 
     </XDtMethod:ifHasMethodTag>
    </XDtMethod:forAllMethods>
   
    <requestFlow name="<XDtClass:classTagValue tagName='jboss-net:web-service' paramName='urn'/>Request">
***************************************************************************
 
Then I placed the following tags over the method for which I needed the actual parameter names.
 
*  @jboss-net:wsdd-operation
*            returnQName="AppointmentDate"
public String makeAppointment(String MRN, String specialist)
 
Running the ejbdoclet task produced the normal web-service.xml along with this snippet.
 
<operation name="makeAppointment" returnQName="AppointmentDate">   
       <parameter name="MRN"/>
       <parameter name="specialist"/>
</operation>
 
The axis wsdl generator produces the following WSDL from this wsdd.
 
<wsdl:message name="makeAppointmentRequest">
       <wsdl:part name="MRN" type="xsd:string" /> 
       <wsdl:part name="specialist" type="xsd:string" />
</wsdl:message>
 
<wsdl:message name="makeAppointmentResponse">
       <wsdl:part name="AppointmentDate" type="xsd:string" />
 </wsdl:message>
 
The wsdl generator must retrieve the part type from the class itself as although you can supply it in the wsdd's operation tag, I didn't as
it would have been rewritting code that was already there.
 
I'm not sure if this is what you had in mind and in fact the more I think about it maybe you meant for me to amend the axis code as opposed to manipulating the xdoclet stuff.
Anyway I'd really appreciate your thoughts on this, any glaring errors etc as I'm not the oldest hat to web-services and can't see many of the obvious errors that will result from this. 
For example I've no idea how this would handle types other than simple objects Strings Booleans i.e. yer basic java.lang classes. I'm not sure if the axis generator will handle them or what might happen. Maybe it's a bit narrow minded in that it's only really applicable to ejbs?
 
Thanks,
Mark.
 
 
 -----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jung , Dr. Christoph
Sent: 25 June 2003 14:24
To: '[EMAIL PROTECTED]'
Subject: AW: [JBoss-user] WSDL Part names within messages.

I would be quite interested in the results of your experiments given that we will rewrite EJBProvider for a more tight
integration with the jboss invocation stack.
 
 
CGJ
 
-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 25. Juni 2003 14:43
An: [EMAIL PROTECTED]
Betreff: RE: [JBoss-user] WSDL Part names within messages.

Hi Dr. Jung,
            I was hoping you'd get back to me. Thanks again. I think I'll have a look at the BCEL and XJavadoc option.
 
Thanks very much for your help,
Mark.
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jung , Dr. Christoph
Sent: 25 June 2003 07:36
To: '[EMAIL PROTECTED]'
Subject: AW: [JBoss-user] WSDL Part names within messages.

Mark,
 
Axis has several ways of annotating such meta-data to be used by the WSDL Emitter (which uses reflection and builtin naming rules
to build its default meta-data thats why the parameter names are so ugly).
 
First the deployment descriptor itself, but in this case it does not leave you much options except giving a service name.
 
You could also subclass the provider implementation (EJBProvider in this case) for preparing the WSDL emitter with
additional information, .e.g, doing the reflection via a different bytecode analyzer, such as BCEL or xjavadoc or ....
 
What Ive also seen is the possibilty for some target beans (Im not sure for EJBProvider, but you should look in the Axis docu) to
implement a static method that will return the already prepared meta-data to the emitter. 
 
CGJ
 
-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Gesendet: Dienstag, 24. Juni 2003 13:51
An: [EMAIL PROTECTED]
Betreff: [JBoss-user] WSDL Part names within messages.

Hi folks,
           I'm exposing a few session beans as web services. In the generated WSDL the part names are given automatic names i.e. in0,in1 etc. I was wondering if there was anyway to be able to set these to the argument name presented in the session bean?
 
i.e. I have a bean called FPGbean which has the following method signature
public double orderFPGTest(String mrn){
    :
    :
}
 
The wsdl for this is described as
 
- <wsdl:message name="orderFPGTestResponse">
  <wsdl:part name="orderFPGTestReturn" type="xsd:double" />
  </wsdl:message>
- <wsdl:message name="orderFPGTestRequest">
  <wsdl:part name="in0" type="xsd:string" />
  </wsdl:message>

and as you can see the part name attribute for the Request is in0.

I'm hoping eventually to use a UDDIBrowser and some sort of DragNDrop functionality into an open source UML
suite from which I will generate clients. I don't exactly need the names I suppose it would just mean I wouldn't have to worry about the parameters being in order as I added them to the call.
 
Thanks,
Mark.

###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/

###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/

Reply via email to