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 <[EMAIL PROTECTED]> 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" <[EMAIL PROTECTED]> wrote:
Hello Dov,
SERVER-CONFIG.WSDD VS DEPLOY.WSDD
- 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.
HOW TO DEPLOY A SERVICE IN AXIS ?
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 :
http://ws.apache.org/axis/java/user-guide.html#CustomDeploymentIntroducingWSDD
* Ant task <axis-admin> doc : http://ws.apache.org/axis/java/ant/ant.html
* 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 : http://wiki.apache.org/ws/FrontPage/Axis/StaticDeployment
SUGGESTION TO BUILD & DEPLOY
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
[EMAIL PROTECTED]
[EMAIL PROTECTED]
On 2/1/06, Dov Rosenberg <[EMAIL PROTECTED]> wrote:
We have started using Axis 1.2 to build and deploy some web services. I am
a little confused as to the actual deployment of our new web services. We
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 into
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