axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alan Shiers <ashi...@eastlink.ca>
Subject RE: newbie on WSDL2Java and WSDL file
Date Sun, 22 Jul 2012 00:21:15 GMT
Hi Kishanthan,

 

Thanks for the information on setting the appropriate binding style to
"rpc".  I did that and finally WSDL2Java was able to process the wsdl file.
Unfortunately, I'm thinking the wsdl file needs more work only because it
only created classes and methods having to do with the KeywordListRequest
port type and binding.  In my wsdl I have two other PortTypes and Bindings:
IndustryListRequest and CategoryListRequest.  These two seemed to be ignored
altogether as is evident in the resulting Axis2KeywordServiceStub.java file
attached.

 

To be truthful, I'm just winging it here.  I don't fully understand WSDL.
I'm just trying to piece together what I can from what I've learned from
basic tutorials I've found on the internet.  I may need some help with the
WSDL file to make the WSDL2Java app produce a Axis2KeywordServiceStub.java
with classes and methods I can work with.

 

If I was writing the stub file myself it would contain methods with the
following signatures:

public static ListItem[] getIndustryList(int id){.}

public static ListItem[] getCategoryList(int id1, int id2){.}

public static String getKeywordList(int id1, int id2){.}

 

If you know Java, I'm hoping those method signatures would help you to
understand what it is I'm trying to accomplish.  Maybe my objective below
are all wrong. 

 

Main Objectives:

1.      Define user-defined type: ListItem - contains an int (itemID) and a
string (itemName)

2.     Define user-defined type: ArrayOfListItem - contains any number of
ListItem objects 

3.     Define PortType IndustryListRequest:  requires an int parameter as
input and should output an ArrayOfListItems

4.     Define PortType CategoryListRequest:  requires two int parameters as
input and should output an ArrayOfListItems

5.     Define PortType KeywordListRequest:  requires two int parameters as
input and should output a String

 

WSDL2Java followed through with items 1,2 and 5.  But ignored 3 and 4.  I
don't get that???

 

This Service is supposed to be quite simple:

1.       Request from the service a list of Industry types.  It then returns
an array of ListItem[]

2.       Once an industry type is chosen, we use an ID to then request sub
categories within that industry returning an array of ListItem[]

3.       Once a category type is chosen, we use an ID to then request a
complete list of keywords and phrases associated with the category of
occupation.  The keywords are returned as a comma delimited String.

 

How hard can this be??  Obviously too hard for me alone to figure it out.
Please help.

 

Alan

 

From: Kishanthan Thangarajah [mailto:kshanth2101@gmail.com] 
Sent: July-21-12 5:39 PM
To: java-user@axis.apache.org
Subject: Re: newbie on WSDL2Java and WSDL file

 

 

On Sat, Jul 21, 2012 at 2:20 AM, Alan Shiers <ashiers@eastlink.ca> wrote:

Hi Guys,

 

I'm trying desperately to familiarize myself with Axis2 and I'm stuck on the
part in the process that requires me to first create a WSDL file for my
project.  I've downloaded XMLSpy to create my WSDL file which is attached.
When I test it for validity in XMLSpy, it is fine.  But WSDL2Java.jar
doesn't agree.  This is the command I use:

 

C:\axis2-1.6.2\samples\pnskeywords>%AXIS2_HOME%\bin\WSDL2Java -uri
keyword.wsdl

-p com.personalnetsearch.plugin.keys.axis2 -d adb -s

 

This is the result:

 

Using AXIS2_HOME:   C:\axis2-1.6.2

Using JAVA_HOME:    C:\Program Files\Java\jdk1.7.0_05

Retrieving document at 'keyword.wsdl'.

log4j:WARN No appenders could be found for logger
(org.apache.axis2.description.

WSDL11ToAllAxisServicesBuilder).

log4j:WARN Please initialize the log4j system properly.

Exception in thread "main"
org.apache.axis2.wsdl.codegen.CodeGenerationException

: Error parsing WSDL

        at
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerat

ionEngine.java:175)

        at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)

        at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)

Caused by: org.apache.axis2.AxisFault: More than one part for message
KeywordLis

tInput

        at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateServi

ce(WSDL11ToAxisServiceBuilder.java:411)

        at
org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder.populateA

llServices(WSDL11ToAllAxisServicesBuilder.java:107)

        at
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerat

ionEngine.java:169)

        ... 2 more

Caused by:
org.apache.axis2.description.WSDL11ToAxisServiceBuilder$WSDLProcessin

gException: More than one part for message KeywordListInput

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addQNameRefer

ence(WSDL11ToAxisServiceBuilder.java:1294)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addQNameRefer

ence(WSDL11ToAxisServiceBuilder.java:1217)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateBindi

ng(WSDL11ToAxisServiceBuilder.java:731)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpo

int(WSDL11ToAxisServiceBuilder.java:552)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateEndpo

ints(WSDL11ToAxisServiceBuilder.java:503)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateServi

ce(WSDL11ToAxisServiceBuilder.java:373)

        ... 4 more

 

I don't understand why it has a problem with my having two parts for message
KeywordListInput?  That's what it is supposed to have.  It is supposed to
take to int parameters, just like CategoryListInput.   Could somebody please
explain what's wrong.

 

 

This is because your wsdl contains multiple part for message
"KeywordListInput" and AFAIK, this is allowed in rpc style binding only. But
the provided wsdl is document literal type. So changing this to rpc would
fix this issue. More info can be found here [1], [2].

 

Thanks,

Kishanthan.

[1]
http://markmail.org/message/pfvtcjf6orzcsuhj?q=axis2+More+than+one+part+for+
message+input 

[2] https://issues.apache.org/jira/browse/AXIS2-4096

 

Alan Shiers

 

 



---------------------------------------------------------------------
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