axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sanka Samaranayake <ssa...@gmail.com>
Subject Re: Re: Deploy service programatically - howto use custom wsdl?
Date Thu, 10 Mar 2011 15:41:39 GMT
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 <root@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 <root@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


Mime
View raw message