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: ssa...@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 <r...@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: ssa...@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 <r...@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-unsubscr...@axis.apache.org > >> > For additional commands, e-mail: java-user-h...@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-unsubscr...@axis.apache.org > >> For additional commands, e-mail: java-user-h...@axis.apache.org > >> > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org > > For additional commands, e-mail: java-user-h...@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-unsubscr...@axis.apache.org > For additional commands, e-mail: java-user-h...@axis.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org For additional commands, e-mail: java-user-h...@axis.apache.org