axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dov Rosenberg <>
Subject Re: WSDD Questions
Date Thu, 02 Feb 2006 01:19:07 GMT
Things are a little more clear. I have 3 sets of web services. One service
(SecurityService) has a single exposed method called authenticate which
returns a SecurityToken bean. This bean is passed to methods exposed in my
other 2 sets of services. For example,

// this method is in my SecurityServices web service, SecurityToken is a
public SecurityToken authenticate(String userid, String passwd, String
repositoryrefkey) throws IMSecurityException;

This token is passed into other WS method calls like (in my CategoryService

public Category getCategory(SecurityToken token, String refKey, String
localeCode) throws IMSecurityException, IMDataException;

Category is also a Bean.

We are using Eclipse and the J2EE perspective. It has pretty nice support
for building/testing these services.

If I understand things better then

1. I should create separate web services for each of my exposed set of
methods, each web service will have its own deploy.wsdd that will get auto
generated from my implementation class using Java2WSDL. When I am done I
should have a SecurityService.wsdl, ContentService.wsdl, and a

2. After I have my WSDL files I can deploy my app and the server-config.wsdd
will get populated by Axis after it finds my deploy.wsdd files in the
CLASSPATH of my web app. Once the deploy.wsdd files are loaded into my
server-config.wsdd I do not need the deploy.wsdd files any longer.

Q. Do I need to deploy any client files or can the client app deal strictly
with the WSDL and call my methods from there?

Thanks again for your help.

On 2/1/06 7:30 PM, "Dies Koper" <> wrote:

> Hello Dov, Cyrille,
> I didn't follow this thread so I might have misunderstood what Dov is
> trying, but I believe each WSDL is associated with one WSDD, but a WSDL
> can contain several services and each will get an entry with its impl
> class in the WSDD.
> You can use Java2WSDL's "-i" option to add several services to one WSDL.
> Depending on how you join your services into one WSDL, you'll have one
> or more Service Interfaces (ServiceLocator classes) to look up the Stubs
> with.
> After deploying them once, you can copy the generated server-config.wsdd
> (the one that was generated at deployment, not the one you generated
> yourself with WSDL2Java) and use that next time to "auto-deploy".
> If you deploy services one by one (using deploy.wsdd), their definitions
> will be merged into one server-config.wsdd. I would not be surprised if
> you could use that merged server-config.wsdd too, even if the contents
> came from different deployments and different WSDL files.
> Dov, did you have any problems or are you just wondering whether it is
> "allowed" before trying it out?
> Regards,
> Dies
> Cyrille Le Clerc wrote:
>>    Hi Dov,
>>    From an Axis wsdd standpoint one each wsdl is associated with one
>> implementation class (via the <service> element in the wsdd).
>>    Due to this, I don't see how you can associate 1 single wsdl with
>> your 3 classes.
>>    Did you try to call java2wsdl on each of your services ? It will
>> give you the deploy.wsdd (I don't remember if you will need to call
>> wsdl2java on the generated wsdl to get the wsdd).
>>    Cyrille
>> On 2/1/06, Dov Rosenberg <> wrote:
>>> If the server-config.wsdd already has my services configured in it, do I
>>> still need to create ant tasks to do the static deploy like you mentioned
>>> below?
>>> I am having some difficulties because my web services are defined in a
>>> packages like:
>>>     com.inquira.imws.impl.ContentService
>>>     com.inquira.imws.impl.SecurityService
>>>     com.inquira.imws.impl.CategoryService
>>> Each class has a handful of methods exposed as web service calls. Each
>>> method call only uses java primitives or bean type classes as parameters.
>>> The beans are defined in another package com.inquira.imws.beans. Exceptions
>>> are defined in com.inquira.imws.exceptions.
>>> I created a single wsdl that contains references to all of my services and
>>> their methods. I am trying to set this up so all an end user needs to do is
>>> to install the WAR file and go. No separate deployment - it would autodeploy
>>> based on the server-config.wsdd
>>> On 2/1/06 4:18 PM, "Cyrille Le Clerc" <> wrote:
>>>>    Hello Dov,
>>>> - server-config.wsdd is the configuration file of the Axis Server. It
>>>> contains the description of all the web services that are deployed on
>>>> your server (+ some other configuration data).
>>>> - deploy.wsdd is generated at the same time as your stubs when you use
>>>> java2wsdl. deploy.wsdd is used by the deployment tool to deploy the
>>>> given service. Once your service is deployed, you no longer need this
>>>> file.
>>>> There are two ways :
>>>> - When your Axis Server is running invoking the AdminClient tool
>>>>  * command line sample :
>>>>     % java org.apache.axis.client.AdminClient deploy.wsdd
>>>>  * command line doc :
>>>> SDD
>>>>  * Ant task <axis-admin> doc :
>>>>  * Note that the deployment will be persistent (server-config.wsdd
>>>> will be updated)
>>>> - When you server is stopped invoking org.apache.axis.utils.Admin
>>>>  * Ant task doc :
>>>> I prefer to deploy my web services in my Axis server at build time
>>>> rather than run time.
>>>> To do this, I use Ant tasks to wsdl2java and then deploy. It has the
>>>> great advantage of being reproductible.
>>>> It looks like this :
>>>> <target name="wsdl2javaSayHello" depends="init">
>>>>   <axis-wsdl2java
>>>>      output="src/java" deployScope="Application"
>>>>      verbose="true" serverSide="true" testcase="true"
>>>>      url="src/wsdl/helloWorld.wsdl">
>>>>   </axis-wsdl2java>
>>>> </target>
>>>> <target name="staticDeployHelloWorld">
>>>>   <java classname="org.apache.axis.utils.Admin"
>>>>      fork="true" dir="src/webapp/WEB-INF">
>>>>      <arg value="server" />
>>>>      <arg value="src/java/cyrille/ws/sample/deploy.wsdd" />
>>>>      <classpath>
>>>>         <pathelement location="target/classes" />
>>>>         <path refid="axis.classpath" />
>>>>      </classpath>
>>>>   </java>
>>>> </target>
>>>>    Hope this helps,
>>>>    Cyrille
>>>> --
>>>> Cyrille Le Clerc
>>>> On 2/1/06, Dov Rosenberg <> wrote:
>>>>>  We have started using Axis 1.2 to build and deploy some web services.
>>>>> am
>>>>> a little confused as to the actual deployment of our new web services.
>>>>> are deploying inside Tomcat and have all of the necessary files in place
>>>>> to
>>>>> run.
>>>>>  Q. I am confused about the difference between server-config.wsdd and
>>>>> deploy.wsdd. We are using Eclipse and it seems that there is a deploy.wsdd
>>>>> for each service that we are offering. Are these automatically merged
>>>>> the server-config.wsdd when the app starts or can I prebuild the
>>>>> server-config.wsdd and deploy it as part of our build process?
>>>>>  Q. Do I need the deploy.wsdd files?
>>>>>  Q. Is there a better/easier way to create these deployment descriptors?
>>>>> It
>>>>> seems the manual method is prone to errors.
>>>>>  Thanks in advance for any help you can provide

Dov Rosenberg
Inquira Inc
370 Centerpointe Circle, ste 1178
Altamonte Springs, FL 32701
(407) 339-1177 x 102
(407) 339-6704 (fax)
AOL IM: dovrosenberg

View raw message