Jeff
Thanks for reply.appreciate it.
This is how I have done my thing. I am new to WS so starting from WSDL seems
tough.
1) I have a Java class which has a method getName(String idstring)
2) I run ANT JAVA2WSDL with STYLE = wrapped option.
3) This creates the WSDL file.
4) Then I run WSDL2JAVA on wsdl file to create client java stubs. It also
creates the deploy.wsdd and undeploy.wsdd files.
5) The deploy.wsdd file is then fed to
org.apache.axis.utils.Admin to create the server-deploy.wsdd file.
6) I place the server-deploy.wsdd file under /WEB-INF/ directory. This wsdd
file has wrapped/literal declarations.
7) Start JBOSS . I have a servlet which uses the client stubs created in step
4 to call webservice and it runs fine.
8) But when I create WSDL using the link in my previous email I see RPC /
SOAP encoding.
So my question is how do I know the JBOSS server read server-deploy.wsdd and
deployed the WS correctly. I have the .jws file outside the /WEB-INF/ directory.
Thanks
MN
"Walker, Jeff" <[EMAIL PROTECTED]> wrote:
Ok,
so I don't think that's right. Did you mean style="wrapped" ? Also, you can't
tell the browser to format it as wrapped. The browser has no idea what
'wrapped' or 'document' or 'RPC encoded' means. Its just plain xml to a
browser. Not sure what JBOSS allows, but I'm pretty sure it has no idea what
wrapped/document/rpc endocded is either.
Whatever the wsdl format is that they see, is what you have created. If they
see rpc encoded, then your web service follows that style. (In other words, I
don't think you are using document or wrapped yet). These are the basic
characteristics of the document/literal wrapped pattern:
The input message has a single part. (One object passed in).
The part is an element in the schema.
The element has the same name as the operation. (Wierd Microsoft preferred
convention here. The input object has the same name as the operation itself.
Very strange. Try writing a project in a computer science course in college and
do that, name a parameter the same name as the operation that takes it and see
what mark you get! Fortunately, wsdl is flexible and this can easily be done).
The element's complex type has no attributes. (Another Microsoft convention;
to simplify class construction, I'm guessing).
Here are the strengths and weaknesses of this approach:
Strengths
There is no type encoding info. (Finally, something useful from this wrapped
idea).
Everything that appears in the soap:body is defined by the schema, so you
can easily validate this message. (Great idea!)
Once again, you have the method name in the SOAP message. (Good for routing
requests I suppose, but one wonders what web services will look like 5 years
from now if we no longer use OO and we don't have methods in classes anymore?)
Document/literal is WS-I compliant, and the wrapped pattern meets the WS-I
restriction that the SOAP message's soap:body has only one child.
Weaknesses
The WSDL is more complicated. (Only slightly, really. And considering we can
easily develop .NET clients from the wsdl now, it's worth it).
I recommend you use style="document". The wrapped part is just the way you
organize message parts in your wsdl to follow a convention originally defined
by Microsoft and later ratified by the WSI for interoperability. So, to play
with Microsoft nicely, we bend a little and adopt their wrapped style.
One more thing, I don't start with a Java interface and run it through
Java2WSDL. I usually use WSDL2Java, that is, I start with WSDL first
(contract-first approach) and then generate the Java from that. (Afterall, if
your'e a client trying to communicate to a web service, you get the wsdl given
to you and that's usually about all you get. So, why not get the wsdl down-pat
first?)
-jeff
---------------------------------
From: M N [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 16, 2007 4:29 PM
To: axix axis
Subject: How to tell JBOSS/AXIS to create WSDL on the fly with
style=WRAPPING/LITERAL?
I have installed java webservice on JBOSS using AXIS 1.4. I created the WSDL
using ANT-java2wsdl tool. Using this tool I can specify the STYLE="WRAPPING".
This works fine.
But when the user creates the WSDL on the fly by pointing to browser
http://100.11.8.330:8080/okayapp/CustAccountService.jws?wsdl he gets a WSDL in
browser which is RPC encoded. How can I tell browser or JBOSS to provide
style=WRAPPING/LITERAL wsdl on the fly?
---------------------------------
Don't let your dream ride pass you by. Make it a reality with Yahoo! Autos.
---------------------------------
Shape Yahoo! in your own image. Join our Network Research Panel today!