Luciano,
thank you very much for your ongoing support.
I defined a rather complex wsdl with lots of constraints, like:
<simpleType name="CustomerNumber">
<restriction base="xsd:string">
<maxLength value="12"/>
</restriction>
</simpleType>
Then I generate the classes from the WSDL and the deploy.wsdd.
I copy the deploy.wsdd content (without the deploy tag) into server-config.wsdd
and seems to work fine.
Thing is, when I ask Axis for the WSDL it only returns a subset of my original
WSDL, namely all the constraints are missing and the simple types with
constraints have been turned into complex types:
<complexType name="CustomerNumber">
<simpleContent>
<extension base="xsd:string"/>
</simpleContent>
</complexType>
Unfortunately the constraint is missing and CustomerNumber is now a complex
type.
Bad thing about this is, that Schema Validation cannot take place anymore.
After reading your thoughts from yesterday I believe the problem is the
process I use. The wsdd doesn't contain any constraints, but only the type
mappings.
This, I believe, is the reason the generated WSDL doesn't contain the
constraints anymore.
So after you pointed me out to the wsdlFile tag, I provided the original WSDL to
axis and it serves it exactly the way I defined it, i.e. containing the
constraints.
Problem ist, that it seems just to serve the file, but ignores it when it comes
down to validating the soap messages against the schema. It seems to still rely
on the internally generated one.
This is an excerpt how my server-config.wsdd looks like now:
<service name="KBAService" provider="java:RPC" style="rpc" use="encoded">
<parameter name="wsdlTargetNamespace" value="urn:kba"/>
<parameter name="wsdlServiceElement" value="KBA"/>
<parameter name="wsdlServicePort" value="KBAService"/>
<parameter name="className"
value="de.mco.kba.kbaservices.server.KBAServiceImpl"/>
<parameter name="wsdlPortType" value="KBAService"/>
<operation name="process" qname="process" >
<parameter name="changeBillingAddressRequest"
type="tns:ChangeBillingAddressRequest" xmlns:tns="urn:kba"/>
<fault name="AddressValidationException" qname="fault"
class="de.mco.kba.generated.ws.server.kba.AddressValidationException"
type="tns:AddressValidationException" xmlns:tns="urn:kba"/>
</operation>
<operation name="process" qname="process"
returnQName="readBillingAddressResponse"
returnType="rtns:ReadBillingAddressResponse" xmlns:rtns="urn:kba" >
<parameter name="readBillingAddressRequest"
type="tns:ReadBillingAddressRequest" xmlns:tns="urn:kba"/>
</operation>
[..]
<wsdlFile>/kbaService.wsdl</wsdlFile>
<parameter name="allowedMethods" value="process"/>
<typeMapping
xmlns:ns="urn:kba"
qname="ns:PossibleRequests"
type="java:de.mco.kba.generated.ws.server.kba.PossibleRequests"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
<typeMapping
xmlns:ns="urn:kba"
qname="ns:PostalCode"
type="java:de.mco.kba.generated.ws.server.kba.PostalCode"
serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory"
deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
[..]
I believe I am asking for nothing insane here. I just want to validate the
SOAP messages against the Schema. How do other people do this?
As a final resort I consider writing my own handler, which will do the
validation, but I am always a bit puzzled when I have to write something which
seems to be a standard requirement. Usually that means I didn't get it ;-)
Cheers,
Mariano
<[EMAIL PROTECTED]>
25.02.2004 19:41
Bitte antworten an [EMAIL PROTECTED]
An: <[EMAIL PROTECTED]>
Kopie: (Blindkopie: Mariano Kamp/FEA_EXT/Essen/Arcor)
Thema: RE: Antwort: RE: Antwort: RE: Antwort: RE: Antwort: Re: Antwort: Re:
Antwort: newbie: help with generating wsdl thru url
Mariano, I think I have lost something in the thread... :)
What is ignoring what?
What component are you expecting to do schema validation?
Luciano
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday 25 February 2004 19:37
To: [EMAIL PROTECTED]
Subject: Antwort: RE: Antwort: RE: Antwort: RE: Antwort: Re: Antwort:
Re: Antwort: newbie: help with generating wsdl thru url
Hi Shrikant, Luciano,
� that's great. It now displays the "real" WSDL.
� Unfortunately it still ignores it. It seems to just serve the file instead of
also using it for Schema validation. Any ideas how to get that working?
Cheers,
Mariano
"Wagh, Shrikant" <[EMAIL PROTECTED]>
25.02.2004 19:26
Bitte antworten an [EMAIL PROTECTED]
An:���� <[EMAIL PROTECTED]>
Kopie:� (Blindkopie: Mariano Kamp/FEA_EXT/Essen/Arcor)
Thema:� RE: Antwort: RE: Antwort: RE: Antwort: Re: Antwort: Re: Antwort: newbie:
������� help with generating wsdl thru url
Hi Luciano, Mariano,
Axis always generate the WSDL file "on-the-fly" depending on the contents of the
WSDD file.
Axis does generate the WSDL file correctly for complex types etc... The only
issues are if you are using SOAPHeader or Attachements then the WSDL generated
by Axis does not contain that information.
Though you have the option to instruct the axis to display the static wsdl file
rather than generating it dynamically. For this you can use the <wsdlFile>
element in WSDD file. You also have to make sure that WSDL file is in Classpath
or in classes directory if you use "wsdlFile" property.
e.g.
<wsdlFile>/com/hp/myservices/myServices.wsdl</wsdlFile>
Hope this helps.
Best regards,
Shrikant Wagh
QA Lead, HPP/Eprofile, HP
For those who are interested in Web Services testing:
-----------------------------------------------------
I found that WebServiceTester from Optimyz software is a very good tool for
testing any types of web services, and I'm great fan of this tool. It supports
all types of web services, and all simple and complex types and it very usable
than any other tool in the market I ever used/evaluated. It automatically
generates the SOAP requests and invokes the intended web services. It can
perform functional, regression and load testing of web services. Result analysis
and status reporting is just wonderful.� I'll highly recommend this tool for
testing web services, saves lots of time and efforts in testing web services.
For more information visit http://www.optimyz.com.
DISCLAIMER
================================================================
THESE ARE MY PERSONAL VIEWS/OPINIONS AND DOES NOT REPRESENT HP, AND THE
INFORMATION PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.� IN NO EVENT SHALL THE I/HP BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS INFORMATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=================================================================
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, February 25, 2004 10:10 AM
To: [EMAIL PROTECTED]
Subject: RE: Antwort: RE: Antwort: RE: Antwort: Re: Antwort: Re: Antwort:
newbie: help with generating wsdl thru url
Mariano,
actually is my mistake. Axis can generate wsdl on the fly when the wsdd is not
very complex (ie. complex datatypes or DataHandler).
In general I prefer to copy my own wsdl to Axis. In case of simple webservices
it is ok to let Axis generate the wsdl.
Luciano
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday 25 February 2004 19:05
To: [EMAIL PROTECTED]
Subject: Antwort: RE: Antwort: RE: Antwort: Re: Antwort: Re: Antwort:
newbie: help with generating wsdl thru url
Luciano,
� well, I built a wsdl by hand, generate the classes and deploy the classes plus
the wsdd, but not the wsdl. Axis does then generate the wsdl on the fly if
invoked with servicename?wsdl.
� At least that is the way it works for me. I am positive about not exporting my
wsdl to axis, just the classes and the wsdd. And in my non-expert opinion that
has all the information needed, does it?
� But as you are so firm on your point of view it makes me think if my other
problem (see "How to turn on validation? Axis 1.1") is related to this. With my
approach the schema information is lost.
Cheers,
Mariano
<[EMAIL PROTECTED]>
25.02.2004 18:57
Bitte antworten an [EMAIL PROTECTED]
An: <[EMAIL PROTECTED]>
Kopie: (Blindkopie: Mariano Kamp/FEA_EXT/Essen/Arcor)
Thema: RE: Antwort: RE: Antwort: Re: Antwort: Re: Antwort: newbie: help with
������ generating wsdl thru url
Mariano,
the wsdl of a web service is not generated when you deploy a webservice using a
simple wsdd.
Check if you are not copying the wsdl when you deploy your application.
Luciano
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday 25 February 2004 18:55
To: [EMAIL PROTECTED]
Subject: Antwort: RE: Antwort: Re: Antwort: Re: Antwort: newbie: help
with generating wsdl thru url
My axis does ;-) xyz?wsdl returns the generated wsdl....
That is is sync with what the documentation says.
<[EMAIL PROTECTED]>
25.02.2004 18:50
Bitte antworten an [EMAIL PROTECTED]
An: <[EMAIL PROTECTED]>
Kopie: (Blindkopie: Mariano Kamp/FEA_EXT/Essen/Arcor)
Thema: RE: Antwort: Re: Antwort: Re: Antwort: newbie: help with generating wsdl
thru url
No, axis does not generate a wsdl automatically. Once you have
written/generated your wsdl
you have to copy it to Tomcat along with your application.
Luciano
-----Original Message-----
From: Chiang Seng Chang [mailto:[EMAIL PROTECTED]
Sent: Wednesday 25 February 2004 18:47
To: [EMAIL PROTECTED]
Subject: Re: Antwort: Re: Antwort: Re: Antwort: newbie: help with generating
wsdl thru url
aha !
that's one of my question, isn't wsdl generated automagically ?
i grep'd the axis webapp dir and cant seems to find and precoded wsdl, so i
assume it's automagic.
-cs
----- Original Message -----
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, February 25, 2004 12:44 PM
Subject: RE: Antwort: Re: Antwort: Re: Antwort: newbie: help with generating
wsdl thru url
Are you sure that the wsdl exists on the webserver?
Luciano
-----Original Message-----
From: Chiang Seng Chang [mailto:[EMAIL PROTECTED]
Sent: Wednesday 25 February 2004 18:43
To: [EMAIL PROTECTED]
Subject: Re: Antwort: Re: Antwort: Re: Antwort: newbie: help with
generating wsdl thru url
i am using jrun31 with axis 1.1
happyaxis found all required lib, only complains about the optional security
lib and recomending xerces2
the services seems to run fine, i get the envelope xml outputs.
the "only" thing is that it cant produce wsdl via url :-(
-cs
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, February 25, 2004 12:40 PM
Subject: Antwort: Re: Antwort: Re: Antwort: newbie: help with generating
wsdl thru url
> ok, then forget my other mail.
>
> I have no clue!
>
> That shouldn't put you off though, as I am a newbie myself.
>
> One last thing... Did you run http://localhost/happyaxis.jsp? All required
> libraries are there?
>
> Cheers,
> Mariano
>
>
>
>
> "Chiang Seng Chang" <[EMAIL PROTECTED]>
> 25.02.2004 18:37
>
> Bitte antworten an [EMAIL PROTECTED]
> An: <[EMAIL PROTECTED]>
> Kopie: (Blindkopie: Mariano Kamp/FEA_EXT/Essen/Arcor)
> Thema: Re: Antwort: Re: Antwort: newbie: help with generating wsdl thru
url
>
>
> hi,
>
> http://localhost/services looks fine:
>
> And now... Some Services
> AdminService (wsdl)
> AdminService
> Version (wsdl)
> getVersion
> FooService (wsdl)
> foo
>
> -cs
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, February 25, 2004 12:33 PM
> Subject: Antwort: Re: Antwort: newbie: help with generating wsdl thru url
>
>
> > Hi,
> >
> > I am newbie myself and am not able to tell you what the log output
> means.
> >
> > Anyway did you try to enter http://localhost/services/?
> >
> > It should return a list of deployed services, reflecting the entries
in
> > WEB-INF/server-config.wsdd.
> >
> > > do I have to "hand-code" the wsdl and supply in the wsdd ?
> > It depends. Did you have a look at the user's guide?
> >
> > Cheers,
> > Mariano
> >
> >
> >
> >
> >
> > "Chiang Seng Chang" <[EMAIL PROTECTED]>
> > 25.02.2004 18:27
> >
> > Bitte antworten an [EMAIL PROTECTED]
> > An: <[EMAIL PROTECTED]>
> > Kopie: (Blindkopie: Mariano Kamp/FEA_EXT/Essen/Arcor)
> > Thema: Re: Antwort: newbie: help with generating wsdl thru url
> >
> >
> > hi,
> >
> > source looks "empty" ?
> >
> > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> > <HTML><HEAD>
> > <META http-equiv=Content-Type content="text/html;
> > charset=iso-8859-1"></HEAD>
> > <BODY><PRE></PRE></BODY></HTML>
> >
> > do I have to "hand-code" the wsdl and supply in the wsdd ?
> >
> > rgds.
> >
> > -cs
> >
> > ----- Original Message -----
> > From: <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Wednesday, February 25, 2004 12:24 PM
> > Subject: Antwort: newbie: help with generating wsdl thru url
> >
> >
> > > Hi,
> > >
> > > are you using IE? Did you try to look at the source of the page?
> > >
> > > Cheers,
> > > Mariano
> > >
> > >
> > >
> > >
> > > "Chiang Seng Chang" <[EMAIL PROTECTED]>
> > > 25.02.2004 18:17
> > >
> > > Bitte antworten an [EMAIL PROTECTED]
> > > An: <[EMAIL PROTECTED]>
> > > Kopie: (Blindkopie: Mariano Kamp/FEA_EXT/Essen/Arcor)
> > > Thema: newbie: help with generating wsdl thru url
> > >
> > >
> > > Hi,
> > >
> > > Are there any "usual suspects" why
> > http://localhost/services/FooService?wsdl
> > > produces a blank page.
> > >
> > > I don't see any exception in the log:
> > >
> > > DEBUG jcp-8 http.AxisServlet:218 - Enter: doGet()
> > > DEBUG jcp-8 http.AxisServlet:1044 -
> > > MessageContext:[EMAIL PROTECTED]
> > > DEBUG jcp-8 http.AxisServlet:1045 - HEADER_CONTENT_TYPE:null DEBUG
> jcp-8
> > > http.AxisServlet:1047 - HEADER_CONTENT_LOCATION:null DEBUG jcp-8
> > > http.AxisServlet:1049 - Constants.MC_HOME_DIR:/foo/webapp DEBUG jcp-8
> > > http.AxisServlet:1050 - Constants.MC_RELATIVE_PATH:/services
> > > DEBUG jcp-8 http.AxisServlet:1052 -
> > > HTTPConstants.MC_HTTP_SERVLETLOCATION:/foo/webapp/WEB-INF
> > > DEBUG jcp-8 http.AxisServlet:1053
> > > HTTPConstants.MC_HTTP_SERVLETPATHINFO:/FooService
> > > DEBUG jcp-8 http.AxisServlet:1055 -
> > HTTPConstants.HEADER_AUTHORIZATION:null
> > > DEBUG jcp-8 http.AxisServlet:1057
Constants.MC_REMOTE_ADDR:xx.xx.x.xx
> > > DEBUG jcp-8 http.AxisServlet:1058 - configPath:/foo/webapp/WEB-INF
> DEBUG
> > > jcp-8 server.AxisServer:377 - Enter: AxisServer::generateWSDL DEBUG
> jcp-8
> > > i18n.ProjectResourceBundle:111
> > > org.apache.axis.i18n.resource::handleGetObject(defaultLogic00)
> > > DEBUG jcp-8 server.AxisServer:430 - Calling default logic in
AxisServer
> > > DEBUG jcp-8 i18n.ProjectResourceBundle:111 -
> > > org.apache.axis.i18n.resource::handleGetObject(transport01)
> > > DEBUG jcp-8 server.AxisServer:455 - AxisServer.generateWSDL:
Transport
> =
> > > 'http' DEBUG jcp-8 axis.SimpleChain:133 - Enter:
> > SimpleChain::generateWSDL
> > > DEBUG jcp-8 http.URLMapper:77 - Enter: URLMapper::invoke DEBUG jcp-8
> > > axis.MessageContext:688 - MessageContext: setTargetService(FooService)
> > > DEBUG jcp-8 axis.MessageContext:718 - MessageContext:
> > > setServiceHandler([EMAIL PROTECTED])
> > > DEBUG jcp-8 http.URLMapper:91 - Exit: URLMapper::invoke
> > > DEBUG jcp-8 axis.SimpleChain:140 - Exit: SimpleChain::generateWSDL
> DEBUG
> > > jcp-8 axis.SimpleChain:133 - Enter: SimpleChain::generateWSDL DEBUG
> jcp-8
> > > handlers.JWSHandler:338 - Exit: JWSHandler::invoke DEBUG jcp-8
> > > handlers.JWSHandler:338 - Exit: JWSHandler::invoke DEBUG jcp-8
> > > axis.SimpleChain:140 - Exit: SimpleChain::generateWSDL DEBUG jcp-8
> > > axis.SimpleChain:133 - Enter: SimpleChain::generateWSDL DEBUG jcp-8
> > > java.JavaProvider:373 - Enter: JavaProvider::generateWSDL
> > > ([EMAIL PROTECTED])
> > > DEBUG jcp-8 http.AxisServlet:344 - Exit: doGet()
> > >
> > > Thanx.
> > >
> > > -cs
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> >
> >
> >
> >
> >
>
>
>
>
>
>
>
>
Any e-mail message from the European Central Bank (ECB) is sent in good faith
but shall neither be binding nor construed as constituting a commitment by the
ECB except where provided for in a written agreement.
This e-mail is intended only for the use of the recipient(s) named above. Any
unauthorised disclosure, use or dissemination, either in whole or in part, is
prohibited.
If you have received this e-mail in error, please notify the sender immediately
via e-mail and delete this e-mail from your system.
Any e-mail message from the European Central Bank (ECB) is sent in good faith
but shall neither be binding nor construed as constituting a commitment by the
ECB except where provided for in a written agreement.
This e-mail is intended only for the use of the recipient(s) named above. Any
unauthorised disclosure, use or dissemination, either in whole or in part, is
prohibited.
If you have received this e-mail in error, please notify the sender immediately
via e-mail and delete this e-mail from your system.
Any e-mail message from the European Central Bank (ECB) is sent in good faith
but shall neither be binding nor construed as constituting a commitment by the
ECB except where provided for in a written agreement.
This e-mail is intended only for the use of the recipient(s) named above. Any
unauthorised disclosure, use or dissemination, either in whole or in part, is
prohibited.
If you have received this e-mail in error, please notify the sender immediately
via e-mail and delete this e-mail from your system.