You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Nikolaus Krismer <ro...@krismer.de> on 2011/03/10 10:28:42 UTC

Deploy service programatically - howto use custom wsdl?

Hi!

are there best practices on how to deploy services programatically?
I tried different approaches, but i can't figure out how to deploy my own wsdl file (so it can be retrived by ?wsdl in the web browser) when deploying programatically.

Here are some of my tries:
  1.) DeploymentEngine.buildService(new FileInputStream(serviceXmlFile), context);
  2.) Build an aar file in code (using ZipOutputStream) and pass the generated zip to:
        axisConfig.addServiceGroup(DeploymentEngine.loadServiceGroup(aarZipFile, context))
  3.) Using DeploymentFileData.deploy (also using a generated aar zip file, which is generated in code)

All of these approches seem to work (personally i prefer #1), but i can't get my original wsdl file (which for #2 and #3 is included in the generated aar file) to be used when calling my service in a webbrowser using ?wsdl. However, i can deliver my custom wsdl files when deploying aar files to the service directory before starting up axis, but since i want to simplify the build of the application i would prefer to deploy services at runtime when starting the application, and not at buildtime.

Is there a way to deliver a custom wsdl file when deploying services programatically?

Regards,
Niko




---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org


Re: Re: Re: Deploy service programatically - howto use custom wsdl?

Posted by Sanka Samaranayake <ss...@gmail.com>.
On Mon, Mar 14, 2011 at 1:20 PM, Nikolaus Krismer <ro...@krismer.de> wrote:
> Using a SchemaSupplier works great to deliver the xsd files.
>
> However, i noticed that although i am using the parameter "useOriginalwsdl" = "true" (i set that in the services.xml file), the wsdl gets modified. in the <xsd:include> tag the (to include some xsd files) the serviceName is used as a prefix for the schemaInclude (f.e. i use a schemaLocation="faults.xsd" which is turned to schemaLocation="v1_MyServicce?xsd=faults.xsd")
>
> Is there a way to prevent the serviceName to be used as a prefix (or at least to modify it?). I'd need schemaLocation=MyService?xsd=faults.xsd" and not schemaLocation="v1_MyServicce?xsd=faults.xsd".

AFAIK, there is no way to disable the automatic modification of the
schemaLocation in the supplied schemas using standard Axis2 binaries.

Sanka

>
> Regards,
> Niko
>
> ----- Original Message -----
> From: ssanka@gmail.com
> To: java-user@axis.apache.org
> Date: 10.03.2011 16:41:39
> Subject: Re: Re: Deploy service programatically - howto use custom wsdl?
>
>
>> You can implement an instance of
>> org.apache.axis2.dataretrieval.SchemaSupplier and set it a parameter
>> in the AxisService object.
>>
>> SchemaSupplier supplier = new SchemaSupplierImpl()..
>> service.addParameter("SchemaSupplier", supplier);
>>
>>
>> You can implement the SchemaSupplierImpl such that it returns all the
>> relevant schema from the associated javax.wsdl.Definition instance.
>> For example,
>>
>>  XmlSchema getSchema(AxisService service, String xsd) throws AxisFault {
>>  Definition def = (Definition)
>> service.getParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION).getValue();
>>  if (def != null) {
>>      XmlSchema xmlSchema = .. (construct an XmlSchema instance using
>> schems accessible via def instance)
>>     return xmlSchema;
>>  }
>>
>>
>> HTH
>>
>> Sanka
>>
>> On Thu, Mar 10, 2011 at 4:13 PM, Nikolaus Krismer <ro...@krismer.de> wrote:
>> > This works great.
>> > However, when using a xsd:include in the wsdl (to import types from an external xsd file) the xsd file can not be retrieved using ?xsd. Is there another option that can be set to solve this issue?
>> >
>> > By now i use the following to generate the Wsdl-Definition object:
>> >
>> >        try {
>> >                final WSDLFactory factory = WSDLFactory.newInstance();
>> >                final WSDLReader reader = factory.newWSDLReader();
>> >                reader.setFeature("javax.wsdl.verbose", false);
>> >                reader.setFeature("javax.wsdl.importDocuments", true);
>> >                final Definition def = reader.readWSDL(null,"MyService.wsdl");
>> >                service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION, def);
>> >        } catch (final WSDLException e) {
>> >                logger.warn("Exception occured. There will be no wsdl file available for this webservice.");
>> >        }
>> >
>> > Regards,
>> > Niko
>> >
>> >
>> > ----- Original Message -----
>> > From: ssanka@gmail.com
>> > To: java-user@axis.apache.org
>> > Date: 10.03.2011 12:06:46
>> > Subject: Re: Deploy service programatically - howto use custom wsdl?
>> >
>> >
>> >> Add the following code after service deployment and then try ?wsdl
>> >>
>> >> AxisConfiguration axisConfig = context.getAxisConfiguration();
>> >> AxisService service = axisConfig.getService("service-name");
>> >> ..
>> >> javax.wsdl.Definition definition = <definition of your custom wsdl>;
>> >> ..
>> >>
>> >> service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION,
>> >> definition);
>> >> service.addParameter("useOriginalwsdl", "true");
>> >>
>> >>
>> >> HTH
>> >>
>> >> Sanka
>> >>
>> >>
>> >> On Thu, Mar 10, 2011 at 10:28 AM, Nikolaus Krismer <ro...@krismer.de> wrote:
>> >> > Hi!
>> >> >
>> >> > are there best practices on how to deploy services programatically?
>> >> > I tried different approaches, but i can't figure out how to deploy my own wsdl file (so it can be retrived by ?wsdl in the web browser) when deploying programatically.
>> >> >
>> >> > Here are some of my tries:
>> >> >  1.) DeploymentEngine.buildService(new FileInputStream(serviceXmlFile), context);
>> >> >  2.) Build an aar file in code (using ZipOutputStream) and pass the generated zip to:
>> >> >        axisConfig.addServiceGroup(DeploymentEngine.loadServiceGroup(aarZipFile, context))
>> >> >  3.) Using DeploymentFileData.deploy (also using a generated aar zip file, which is generated in code)
>> >> >
>> >> > All of these approches seem to work (personally i prefer #1), but i can't get my original wsdl file (which for #2 and #3 is included in the generated aar file) to be used when calling my service in a webbrowser using ?wsdl. However, i can deliver my custom wsdl files when deploying aar files to the service directory before starting up axis, but since i want to simplify the build of the application i would prefer to deploy services at runtime when starting the application, and not at buildtime.
>> >> >
>> >> > Is there a way to deliver a custom wsdl file when deploying services programatically?
>> >> >
>> >> > Regards,
>> >> > Niko
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > ---------------------------------------------------------------------
>> >> > To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
>> >> > For additional commands, e-mail: java-user-help@axis.apache.org
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Sanka Samaranayake
>> >>
>> >> PMC Member, Committer, Apache Software Foundation, http://www.apache.org/
>> >>
>> >> Telephone: +34 677 864358
>> >> Email: sanka AT apache DOT org
>> >> Blog: http://sankas.blogspot.com/
>> >> Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
>> >> For additional commands, e-mail: java-user-help@axis.apache.org
>> >>
>> >
>> >
>> >
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
>> > For additional commands, e-mail: java-user-help@axis.apache.org
>> >
>> >
>>
>>
>>
>> --
>> Sanka Samaranayake
>>
>> PMC Member, Committer, Apache Software Foundation, http://www.apache.org/
>>
>> Telephone: +34 677 864358
>> Email: sanka AT apache DOT org
>> Blog: http://sankas.blogspot.com/
>> Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-user-help@axis.apache.org
>>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org
>
>



-- 
Sanka Samaranayake

PMC Member, Committer, Apache Software Foundation, http://www.apache.org/

Telephone: +34 677 864358
Email: sanka AT apache DOT org
Blog: http://sankas.blogspot.com/
Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org


Re: Re: Re: Deploy service programatically - howto use custom wsdl?

Posted by Nikolaus Krismer <ro...@krismer.de>.
Using a SchemaSupplier works great to deliver the xsd files.

However, i noticed that although i am using the parameter "useOriginalwsdl" = "true" (i set that in the services.xml file), the wsdl gets modified. in the <xsd:include> tag the (to include some xsd files) the serviceName is used as a prefix for the schemaInclude (f.e. i use a schemaLocation="faults.xsd" which is turned to schemaLocation="v1_MyServicce?xsd=faults.xsd")

Is there a way to prevent the serviceName to be used as a prefix (or at least to modify it?). I'd need schemaLocation=MyService?xsd=faults.xsd" and not schemaLocation="v1_MyServicce?xsd=faults.xsd".

Regards,
Niko

----- Original Message -----
From: ssanka@gmail.com
To: java-user@axis.apache.org
Date: 10.03.2011 16:41:39
Subject: Re: Re: Deploy service programatically - howto use custom wsdl?


> You can implement an instance of
> org.apache.axis2.dataretrieval.SchemaSupplier and set it a parameter
> in the AxisService object.
> 
> SchemaSupplier supplier = new SchemaSupplierImpl()..
> service.addParameter("SchemaSupplier", supplier);
> 
> 
> You can implement the SchemaSupplierImpl such that it returns all the
> relevant schema from the associated javax.wsdl.Definition instance.
> For example,
> 
>  XmlSchema getSchema(AxisService service, String xsd) throws AxisFault {
>  Definition def = (Definition)
> service.getParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION).getValue();
>  if (def != null) {
>      XmlSchema xmlSchema = .. (construct an XmlSchema instance using
> schems accessible via def instance)
>     return xmlSchema;
>  }
> 
> 
> HTH
> 
> Sanka
> 
> On Thu, Mar 10, 2011 at 4:13 PM, Nikolaus Krismer <ro...@krismer.de> wrote:
> > This works great.
> > However, when using a xsd:include in the wsdl (to import types from an external xsd file) the xsd file can not be retrieved using ?xsd. Is there another option that can be set to solve this issue?
> >
> > By now i use the following to generate the Wsdl-Definition object:
> >
> >        try {
> >                final WSDLFactory factory = WSDLFactory.newInstance();
> >                final WSDLReader reader = factory.newWSDLReader();
> >                reader.setFeature("javax.wsdl.verbose", false);
> >                reader.setFeature("javax.wsdl.importDocuments", true);
> >                final Definition def = reader.readWSDL(null,"MyService.wsdl");
> >                service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION, def);
> >        } catch (final WSDLException e) {
> >                logger.warn("Exception occured. There will be no wsdl file available for this webservice.");
> >        }
> >
> > Regards,
> > Niko
> >
> >
> > ----- Original Message -----
> > From: ssanka@gmail.com
> > To: java-user@axis.apache.org
> > Date: 10.03.2011 12:06:46
> > Subject: Re: Deploy service programatically - howto use custom wsdl?
> >
> >
> >> Add the following code after service deployment and then try ?wsdl
> >>
> >> AxisConfiguration axisConfig = context.getAxisConfiguration();
> >> AxisService service = axisConfig.getService("service-name");
> >> ..
> >> javax.wsdl.Definition definition = <definition of your custom wsdl>;
> >> ..
> >>
> >> service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION,
> >> definition);
> >> service.addParameter("useOriginalwsdl", "true");
> >>
> >>
> >> HTH
> >>
> >> Sanka
> >>
> >>
> >> On Thu, Mar 10, 2011 at 10:28 AM, Nikolaus Krismer <ro...@krismer.de> wrote:
> >> > Hi!
> >> >
> >> > are there best practices on how to deploy services programatically?
> >> > I tried different approaches, but i can't figure out how to deploy my own wsdl file (so it can be retrived by ?wsdl in the web browser) when deploying programatically.
> >> >
> >> > Here are some of my tries:
> >> >  1.) DeploymentEngine.buildService(new FileInputStream(serviceXmlFile), context);
> >> >  2.) Build an aar file in code (using ZipOutputStream) and pass the generated zip to:
> >> >        axisConfig.addServiceGroup(DeploymentEngine.loadServiceGroup(aarZipFile, context))
> >> >  3.) Using DeploymentFileData.deploy (also using a generated aar zip file, which is generated in code)
> >> >
> >> > All of these approches seem to work (personally i prefer #1), but i can't get my original wsdl file (which for #2 and #3 is included in the generated aar file) to be used when calling my service in a webbrowser using ?wsdl. However, i can deliver my custom wsdl files when deploying aar files to the service directory before starting up axis, but since i want to simplify the build of the application i would prefer to deploy services at runtime when starting the application, and not at buildtime.
> >> >
> >> > Is there a way to deliver a custom wsdl file when deploying services programatically?
> >> >
> >> > Regards,
> >> > Niko
> >> >
> >> >
> >> >
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> >> > For additional commands, e-mail: java-user-help@axis.apache.org
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Sanka Samaranayake
> >>
> >> PMC Member, Committer, Apache Software Foundation, http://www.apache.org/
> >>
> >> Telephone: +34 677 864358
> >> Email: sanka AT apache DOT org
> >> Blog: http://sankas.blogspot.com/
> >> Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> >> For additional commands, e-mail: java-user-help@axis.apache.org
> >>
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> > For additional commands, e-mail: java-user-help@axis.apache.org
> >
> >
> 
> 
> 
> -- 
> Sanka Samaranayake
> 
> PMC Member, Committer, Apache Software Foundation, http://www.apache.org/
> 
> Telephone: +34 677 864358
> Email: sanka AT apache DOT org
> Blog: http://sankas.blogspot.com/
> Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org
> 





---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org


Re: Re: Deploy service programatically - howto use custom wsdl?

Posted by Sanka Samaranayake <ss...@gmail.com>.
You can implement an instance of
org.apache.axis2.dataretrieval.SchemaSupplier and set it a parameter
in the AxisService object.

SchemaSupplier supplier = new SchemaSupplierImpl()..
service.addParameter("SchemaSupplier", supplier);


You can implement the SchemaSupplierImpl such that it returns all the
relevant schema from the associated javax.wsdl.Definition instance.
For example,

 XmlSchema getSchema(AxisService service, String xsd) throws AxisFault {
 Definition def = (Definition)
service.getParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION).getValue();
 if (def != null) {
     XmlSchema xmlSchema = .. (construct an XmlSchema instance using
schems accessible via def instance)
    return xmlSchema;
 }


HTH

Sanka

On Thu, Mar 10, 2011 at 4:13 PM, Nikolaus Krismer <ro...@krismer.de> wrote:
> This works great.
> However, when using a xsd:include in the wsdl (to import types from an external xsd file) the xsd file can not be retrieved using ?xsd. Is there another option that can be set to solve this issue?
>
> By now i use the following to generate the Wsdl-Definition object:
>
>        try {
>                final WSDLFactory factory = WSDLFactory.newInstance();
>                final WSDLReader reader = factory.newWSDLReader();
>                reader.setFeature("javax.wsdl.verbose", false);
>                reader.setFeature("javax.wsdl.importDocuments", true);
>                final Definition def = reader.readWSDL(null,"MyService.wsdl");
>                service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION, def);
>        } catch (final WSDLException e) {
>                logger.warn("Exception occured. There will be no wsdl file available for this webservice.");
>        }
>
> Regards,
> Niko
>
>
> ----- Original Message -----
> From: ssanka@gmail.com
> To: java-user@axis.apache.org
> Date: 10.03.2011 12:06:46
> Subject: Re: Deploy service programatically - howto use custom wsdl?
>
>
>> Add the following code after service deployment and then try ?wsdl
>>
>> AxisConfiguration axisConfig = context.getAxisConfiguration();
>> AxisService service = axisConfig.getService("service-name");
>> ..
>> javax.wsdl.Definition definition = <definition of your custom wsdl>;
>> ..
>>
>> service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION,
>> definition);
>> service.addParameter("useOriginalwsdl", "true");
>>
>>
>> HTH
>>
>> Sanka
>>
>>
>> On Thu, Mar 10, 2011 at 10:28 AM, Nikolaus Krismer <ro...@krismer.de> wrote:
>> > Hi!
>> >
>> > are there best practices on how to deploy services programatically?
>> > I tried different approaches, but i can't figure out how to deploy my own wsdl file (so it can be retrived by ?wsdl in the web browser) when deploying programatically.
>> >
>> > Here are some of my tries:
>> >  1.) DeploymentEngine.buildService(new FileInputStream(serviceXmlFile), context);
>> >  2.) Build an aar file in code (using ZipOutputStream) and pass the generated zip to:
>> >        axisConfig.addServiceGroup(DeploymentEngine.loadServiceGroup(aarZipFile, context))
>> >  3.) Using DeploymentFileData.deploy (also using a generated aar zip file, which is generated in code)
>> >
>> > All of these approches seem to work (personally i prefer #1), but i can't get my original wsdl file (which for #2 and #3 is included in the generated aar file) to be used when calling my service in a webbrowser using ?wsdl. However, i can deliver my custom wsdl files when deploying aar files to the service directory before starting up axis, but since i want to simplify the build of the application i would prefer to deploy services at runtime when starting the application, and not at buildtime.
>> >
>> > Is there a way to deliver a custom wsdl file when deploying services programatically?
>> >
>> > Regards,
>> > Niko
>> >
>> >
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
>> > For additional commands, e-mail: java-user-help@axis.apache.org
>> >
>> >
>>
>>
>>
>> --
>> Sanka Samaranayake
>>
>> PMC Member, Committer, Apache Software Foundation, http://www.apache.org/
>>
>> Telephone: +34 677 864358
>> Email: sanka AT apache DOT org
>> Blog: http://sankas.blogspot.com/
>> Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-user-help@axis.apache.org
>>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org
>
>



-- 
Sanka Samaranayake

PMC Member, Committer, Apache Software Foundation, http://www.apache.org/

Telephone: +34 677 864358
Email: sanka AT apache DOT org
Blog: http://sankas.blogspot.com/
Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org


Re: Re: Deploy service programatically - howto use custom wsdl?

Posted by Nikolaus Krismer <ro...@krismer.de>.
This works great.
However, when using a xsd:include in the wsdl (to import types from an external xsd file) the xsd file can not be retrieved using ?xsd. Is there another option that can be set to solve this issue?

By now i use the following to generate the Wsdl-Definition object:

	try {
		final WSDLFactory factory = WSDLFactory.newInstance();
		final WSDLReader reader = factory.newWSDLReader();
		reader.setFeature("javax.wsdl.verbose", false);
		reader.setFeature("javax.wsdl.importDocuments", true);
		final Definition def = reader.readWSDL(null,"MyService.wsdl");
		service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION, def);
	} catch (final WSDLException e) {
		logger.warn("Exception occured. There will be no wsdl file available for this webservice.");
	}

Regards,
Niko


----- Original Message -----
From: ssanka@gmail.com
To: java-user@axis.apache.org
Date: 10.03.2011 12:06:46
Subject: Re: Deploy service programatically - howto use custom wsdl?


> Add the following code after service deployment and then try ?wsdl
> 
> AxisConfiguration axisConfig = context.getAxisConfiguration();
> AxisService service = axisConfig.getService("service-name");
> ..
> javax.wsdl.Definition definition = <definition of your custom wsdl>;
> ..
> 
> service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION,
> definition);
> service.addParameter("useOriginalwsdl", "true");
> 
> 
> HTH
> 
> Sanka
> 
> 
> On Thu, Mar 10, 2011 at 10:28 AM, Nikolaus Krismer <ro...@krismer.de> wrote:
> > Hi!
> >
> > are there best practices on how to deploy services programatically?
> > I tried different approaches, but i can't figure out how to deploy my own wsdl file (so it can be retrived by ?wsdl in the web browser) when deploying programatically.
> >
> > Here are some of my tries:
> >  1.) DeploymentEngine.buildService(new FileInputStream(serviceXmlFile), context);
> >  2.) Build an aar file in code (using ZipOutputStream) and pass the generated zip to:
> >        axisConfig.addServiceGroup(DeploymentEngine.loadServiceGroup(aarZipFile, context))
> >  3.) Using DeploymentFileData.deploy (also using a generated aar zip file, which is generated in code)
> >
> > All of these approches seem to work (personally i prefer #1), but i can't get my original wsdl file (which for #2 and #3 is included in the generated aar file) to be used when calling my service in a webbrowser using ?wsdl. However, i can deliver my custom wsdl files when deploying aar files to the service directory before starting up axis, but since i want to simplify the build of the application i would prefer to deploy services at runtime when starting the application, and not at buildtime.
> >
> > Is there a way to deliver a custom wsdl file when deploying services programatically?
> >
> > Regards,
> > Niko
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> > For additional commands, e-mail: java-user-help@axis.apache.org
> >
> >
> 
> 
> 
> -- 
> Sanka Samaranayake
> 
> PMC Member, Committer, Apache Software Foundation, http://www.apache.org/
> 
> Telephone: +34 677 864358
> Email: sanka AT apache DOT org
> Blog: http://sankas.blogspot.com/
> Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org
> 





---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org


Re: Deploy service programatically - howto use custom wsdl?

Posted by Sanka Samaranayake <ss...@gmail.com>.
Add the following code after service deployment and then try ?wsdl

AxisConfiguration axisConfig = context.getAxisConfiguration();
AxisService service = axisConfig.getService("service-name");
..
javax.wsdl.Definition definition = <definition of your custom wsdl>;
..

service.addParameter(org.apache.axis2.wsdl.WSDLConstants.WSDL_4_J_DEFINITION,
definition);
service.addParameter("useOriginalwsdl", "true");


HTH

Sanka


On Thu, Mar 10, 2011 at 10:28 AM, Nikolaus Krismer <ro...@krismer.de> wrote:
> Hi!
>
> are there best practices on how to deploy services programatically?
> I tried different approaches, but i can't figure out how to deploy my own wsdl file (so it can be retrived by ?wsdl in the web browser) when deploying programatically.
>
> Here are some of my tries:
>  1.) DeploymentEngine.buildService(new FileInputStream(serviceXmlFile), context);
>  2.) Build an aar file in code (using ZipOutputStream) and pass the generated zip to:
>        axisConfig.addServiceGroup(DeploymentEngine.loadServiceGroup(aarZipFile, context))
>  3.) Using DeploymentFileData.deploy (also using a generated aar zip file, which is generated in code)
>
> All of these approches seem to work (personally i prefer #1), but i can't get my original wsdl file (which for #2 and #3 is included in the generated aar file) to be used when calling my service in a webbrowser using ?wsdl. However, i can deliver my custom wsdl files when deploying aar files to the service directory before starting up axis, but since i want to simplify the build of the application i would prefer to deploy services at runtime when starting the application, and not at buildtime.
>
> Is there a way to deliver a custom wsdl file when deploying services programatically?
>
> Regards,
> Niko
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org
>
>



-- 
Sanka Samaranayake

PMC Member, Committer, Apache Software Foundation, http://www.apache.org/

Telephone: +34 677 864358
Email: sanka AT apache DOT org
Blog: http://sankas.blogspot.com/
Linked-in: http://lk.linkedin.com/pub/sanka-samaranayake/4/b2b/3b3

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org