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: Re: Deploy service programatically - howto use custom wsdl?
Date Tue, 15 Mar 2011 15:16:47 GMT
On Mon, Mar 14, 2011 at 1:20 PM, Nikolaus Krismer <root@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 <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
>>
>
>
>
>
>
> ---------------------------------------------------------------------
> 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