Hi Martin, The web service still works fine in SoapUI 5.0 if I change "Cache Definitions" to false. SoapUI can also update the definition from the .wsdl without a problem if I manually tell it to do that.
I don't see what you're saying about the namespace. There's nothing about the namespaces that refers to the .xsd. The includes for the .xsd files are set up like this: webservices.wsdl: <definitions targetNamespace="http://campusm.gw.com/campusm" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns=" http://campusm.gw.com/campusm" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12=" http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:cm=" http://campusm.gw.com/campusm" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"> <types> <schema elementFormDefault="qualified" targetNamespace=" http://campusm.gw.com/campusm" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap=" http://xml.apache.org/xml-soap" xmlns:tns="http://campusm.gw.com/campusm" xmlns:intf=" http://campusm.gw.com/campusm" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:cm=" http://campusm.gw.com/campusm"> <include schemaLocation="webServiceXsdName.xsd" /> ... </schema> </types> ... </definitions> webServiceXsdName.xsd: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://campusm.gw.com/campusm" targetNamespace=" http://campusm.gw.com/campusm" elementFormDefault="qualified"> <xsd:include schemaLocation="baseTypesXsdName.xsd" /> <xsd:element name="requestName"> <xsd:complexType> <xsd:complexContent> <xsd:extension base="requestBaseType"> <xsd:sequence> <xsd:element name="param1" type="xsd:int" minOccurs="0" maxOccurs="1" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:element> ... </xsd:schema> baseTypesXsdName.xsd: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns=" http://campusm.gw.com/campusm" targetNamespace=" http://campusm.gw.com/campusm" elementFormDefault="qualified"> ... <xsd:complexType name="requestBaseType"> <xsd:sequence> <xsd:element name="baseParam1" type="xsd:int" minOccurs="1" maxOccurs="1" /> <xsd:element name="baseParam2" type="xsd:string" minOccurs="1" maxOccurs="1" /> <xsd:element name="baseParam3" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="true" /> <xsd:element name="baseParam4" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false" /> <xsd:element name="baseParam5" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false" /> </xsd:sequence> </xsd:complexType> </xsd:schema> Is there some problem with this include structure? If there's a problem with the .wsdl, why would SoapUI load it just fine and org.apache.axis2.tool.ant.AntCodegenTask generate the code for this web service from it without a problem? Best regards, Mike On 15 April 2014 12:05, Martin Gainty <mgai...@hotmail.com> wrote: > Mike- > > Axis needs to reference the defining XSD > SOAPUI caches the xsd > change the "Cache Definitions" bottom-left property for the containing > project to false (if you want to see the error) > > http://www.soapui.org/SOAP-and-WSDL/working-with-ws-attachments-and-inline-files.html > > Browser doesnt know where to find XSD or any of the elements defined > within XSD so it gacks > > > "It is a common misperception to equate the targetNamespace of an XML > schema or the value of the *xmlns* attribute in XML instances with the > location of the corresponding schema. > > Since namespaces are in fact *URIs*, and *URIs may be locations*, and *you > may be able to retrieve a schema from that location*, > > it does not mean that is the only schema that is associated with that > namespace. > There can be multiple schemas associated with a particular namespace, and > it is up to a processor of XML to determine which one to use in a > particular processing context. The WSDL specification provides the > processing context here via the *<import>* mechanism, which is based on > the XML schemas grammar for the similar concept" > http://www.w3.org/TR/wsdl > > *to use a specific XSD location use xs:import *e.g. > <xs:import namespace="http://www.w3schools.com/schema"/> > http://www.w3schools.com/schema/el_import.asp > > HTH > Martin > ______________________________________________ > > > > > ------------------------------ > Date: Tue, 15 Apr 2014 09:28:28 +0100 > > Subject: Re: Browser/CURL requests to WS w/response extending a type > From: mike.ha...@ombiel.com > To: java-user@axis.apache.org > > > Hi Doug, > > That is an important fact, but unfortunately I see the same problem with > POST as I do with GET. It looks like I forgot to mention that. I'm using > POST with CURL, but I used GET in a browser to do some of the testing. > > Best regards, > Mike > > > On 14 April 2014 15:58, Newton, Doug <doug.new...@suddenlink.com> wrote: > > Hi Mike, > > > > This is just a side-bar comment regarding curl. You probably already know > this, and are probably locked into having to do a GET for some reason, but > just in case I wanted to make sure you knew that you can POST a complete > SOAP envelope with curl. That is the way I always curl into a > web-service. I've never relied on the bonus feature of being able to make > a shortcut GET request. That isn't a web-service specified capability. > > > > You can curl a file containing the request for the POST: > > > > curl --data @request.xml http://ws.myco.com/services/soap/MyService > > > > You can curl the request inline on the command: > > > > curl --data "<full soap XML request>" > http://ws.myco.com/services/soap/MyService > > > > or pipe the request in: > > > > echo '<full soap XML request>' | curl -X POST -H 'Content-type: text/xml' > -d @- http://ws.myco.com/services/soap/MyService > > > > Doug Newton > > Systems Architect > > Suddenlink Communications, Customer Solutions > > (physical address) 575 Maryville Centre Dr., Suite 300 | St. Louis, MO > 63141 > > (mailing address) 520 Maryville Centre Dr., Suite 300 | St. Louis, MO > 63141 > > (office phone) 314-315-8442 > > (mobile phone) 314-803-6778 > > > > *There are only two hard things in Computer Science: cache invalidation, > naming things, and off-by-one errors.* > > *-Martin Fowler* > > > > *From:* Mike Hawes [mailto:mike.ha...@ombiel.com] > *Sent:* Monday, April 14, 2014 4:25 AM > *To:* java-user@axis.apache.org > *Subject:* Re: Browser/CURL requests to WS w/response extending a type > > > > Hi Shameera, > > I'm afraid there are no log messages there at all for that request, in any > of the standard tomcat logs or our Log4J setup, not even an access request. > Is there some specific Axis2 logging I should enable? > > Best regards, > Mike > > > > On 11 April 2014 18:43, Shameera Rathnayaka <shameerai...@gmail.com> > wrote: > > Hi Mike, > > Do you see any exception in servers side logs? if there is, send the stack > trace of server side too? > > Thanks, > Shameera. > > > > On Fri, Apr 11, 2014 at 3:42 PM, Mike Hawes <mike.ha...@ombiel.com> wrote: > > I've written a web service with Axis2 1.6.2 with a request that extends > another type, with a request element that looks like this in its .xsd: > > <xsd:element name="requestName"> > <xsd:complexType> > <xsd:complexContent> > <xsd:extension base="requestBaseType"> > <xsd:sequence> > <xsd:element name="param1" type="xsd:int" > minOccurs="1" maxOccurs="1" /> > <xsd:element name="param2" type="xsd:string" > minOccurs="1" maxOccurs="1" /> > <xsd:element name="param3" type="xsd:int" > minOccurs="0" maxOccurs="1" /> > </xsd:sequence> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > </xsd:element> > > <xsd:complexType name="requestBaseType"> > <xsd:sequence> > <xsd:element name="baseTypeParam1" type="xsd:string" minOccurs="0" > maxOccurs="1" /> > </xsd:sequence> > </xsd:complexType> > > Sending requests to this web service works just fine if I send the > requests from SoapUI or similar, but if I send the same request via GET > from a browser I get this error: > > <faultstring>org.apache.axis2.databinding.ADBException: Unexpected > subelement {http://campusm.gw.com/campusm}requestName</faultstring> > > It's saying there's an unexpected element of a type that is the correct > request type, even though in a GET request that request object is implicit. > > > > If I stop it extending requestBaseType, it works fine in both the browser > and SoapUI. Here's the xsd definition that fixes the problem: > > <xsd:element name="requestName"> > <xsd:complexType> > <xsd:sequence> > > <xsd:element name="baseTypeParam1" type="xsd:string" > minOccurs="0" maxOccurs="1" /> > > <xsd:element name="param1" type="xsd:int" minOccurs="1" > maxOccurs="1" /> > <xsd:element name="param2" type="xsd:string" minOccurs="1" > maxOccurs="1" /> > <xsd:element name="param3" type="xsd:int" minOccurs="0" > maxOccurs="1" /> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > > Here's an example of the GET request I send in the browser that gets this > error: > > > http://localhost:8080/path/to/webservice?baseTypeParam1=stuff¶m1=12¶m2=thing¶m3=13 > > > > Here's an example of the request I send from SoapUI that works: > > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:cam="http://campusm.gw.com/campusm"> > <soapenv:Header/> > <soapenv:Body> > <cam:requestName> > > <cam:baseTypeParam1>stuff</cam:baseTypeParam1> > > <cam:param1>12</cam:param1> > <cam:param2>thing</cam:param2> > <cam:param3>13</cam:param3> > </cam:requestName> > </soapenv:Body> > </soapenv:Envelope> > > > > I need the request to extend a type so that I can have multiple web > services sending a large common subset of their request parameters to the > same function in my Java code. This would allow the function to take a > parameter of the base request type, and have each web service just pass its > request into that function without any conversion or worring about the > individual parameters at that point. > > I also need to be able to call the web services with CURL, which is not > possible if the web services won't work with a GET request. > > This seems to be a bug with Axis2. Is this a known issue and will it be > fixed? > > > > Best regards, > Mike > > > -- > campusM: http://www.campusM.com > Email: mike.ha...@ombiel.com > Tel: 01902 837451 > > > > -- > > Best Regards, > > Shameera Rathnayaka. > > > > email: shameera AT apache.org , shameerainfo AT gmail.com > Blog : http://shameerarathnayaka.blogspot.com/ > > > > > -- > campusM: http://www.campusM.com > Email: mike.ha...@ombiel.com > Tel: 01902 837451 > ------------------------------ > > The information transmitted is intended only for the person or entity to > which it is addressed and may contain proprietary, confidential and/or > legally privileged material. Any review, retransmission, dissemination or > other use of, or taking of any action in reliance upon, this information by > persons or entities other than the intended recipient is prohibited. If you > received this in error, please contact the sender and delete the material > from all computers. > ------------------------------ > > > > > -- > campusM: http://www.campusM.com > Email: mike.ha...@ombiel.com > Tel: 01902 837451 > -- campusM: http://www.campusM.com Email: mike.ha...@ombiel.com Tel: 01902 837451