You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Alan Shiers <as...@eastlink.ca> on 2012/07/20 22:50:45 UTC

newbie on WSDL2Java and WSDL file

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.

 

Alan Shiers

 

 


RE: newbie on WSDL2Java and WSDL file

Posted by Alan Shiers <as...@eastlink.ca>.
OK.  I now know what name you're talking about.  I ran WSDL2Java like you
said, but it seems one thing leads to another problem:

 

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

-p com.personalnetsearch.plugin.keys.axis2 -pn "IndustryListPort" -d adb -s

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: The binding operation getIndustryList
is

RPC/literal. The message parts for this operation must use the type
attribute as

specificed by WS-I Basic Profile specification (4.4.1).  Message part,
ListItem

Array, violates this rule.  Please remove the element attribute and use the
type

attribute.

        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: The binding operation getIndustryList is RPC/literal. The
message pa

rts for this operation must use the type attribute as specificed by WS-I
Basic P

rofile specification (4.4.1).  Message part, ListItemArray, violatesthis
rule.

Please remove the element attribute and use the type attribute.

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.addPartToElem

ent(WSDL11ToAxisServiceBuilder.java:2254)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.getNewComplex

tType(WSDL11ToAxisServiceBuilder.java:2112)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.createSchemaF

orPorttype(WSDL11ToAxisServiceBuilder.java:1852)

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.generateWrapp

erSchema(WSDL11ToAxisServiceBuilder.java:1650)

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

ce(WSDL11ToAxisServiceBuilder.java:355)

        ... 4 more

 

I am lost.  I have no idea what it wants me to do in the wsdl file to fix
this.  WSDL file attached.  Please edit the file in the manner that will get
me over this hump and complies with WS-I Basic Profile specification (4.4.1)
.

 

Alan

From: Kishanthan Thangarajah [mailto:kshanth2101@gmail.com] 
Sent: July-23-12 1:47 AM
To: java-user@axis.apache.org
Subject: Re: newbie on WSDL2Java and WSDL file

 

 

On Sun, Jul 22, 2012 at 11:21 PM, Alan Shiers <as...@eastlink.ca> wrote:

Thanks for the reply.  I tried your suggestion and from the command prompt
typed:

 

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

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

 

You have to give the port name with -pn option. (eg - in the given wsdl ,
"KeywordListPort" is a port-name). Check whether you have given the correct
port name here.? I think what you have given here is the "portType" name,
which is incorrect. 

 

I even tried:

 

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

-p com.personalnetsearch.plugin.keys.axis2 -pn "IndustryListRequest" -d adb
-s

 

Still I get:

 

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

-p com.personalnetsearch.plugin.keys.axis2 -pn "IndustryListRequest" -d adb
-s

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: No port found for the given name
:IndustryListRequest

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.findBinding(W

SDL11ToAxisServiceBuilder.java:1050)

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

ce(WSDL11ToAxisServiceBuilder.java:341)

        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

 

What might I be doing wrong?  IndustryListRequest is in the WSDL file as a
port type.

 

Alan

 

From: Kishanthan Thangarajah [mailto:kshanth2101@gmail.com] 
Sent: July-22-12 1:41 PM


To: java-user@axis.apache.org
Subject: Re: newbie on WSDL2Java and WSDL file

 

 

On Sun, Jul 22, 2012 at 5:51 AM, Alan Shiers <as...@eastlink.ca> wrote:

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.

 

This is because wsdl2java only support/generate code for one portType [1].
But in your case, you have used three different portType's for three
different bindings. So i think you can still generate code for each port by
using the port-name "-pn" option. You will have to run wsdljava three times
with different port names. This is my suggestion.

 

Thanks,

Kishanthan.

[1] https://issues.apache.org/jira/browse/AXIS2-4654

 

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 <as...@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

 



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org

 

 


Re: newbie on WSDL2Java and WSDL file

Posted by Kishanthan Thangarajah <ks...@gmail.com>.
On Sun, Jul 22, 2012 at 11:21 PM, Alan Shiers <as...@eastlink.ca> wrote:

> Thanks for the reply.  I tried your suggestion and from the command prompt
> typed:****
>
> ** **
>
> C:\axis2-1.6.2\samples\pnskeywords>%AXIS2_HOME%\bin\WSDL2Java -uri
> keyword.wsdl****
>
> -p com.personalnetsearch.plugin.keys.axis2 -pn IndustryListRequest -d adb
> –s
>

You have to give the port name with -pn option. (eg - in the given wsdl ,
"KeywordListPort" is a port-name). Check whether you have given the correct
port name here.? I think what you have given here is the "portType" name,
which is incorrect.

> ****
>
> ** **
>
> I even tried:****
>
> ** **
>
> C:\axis2-1.6.2\samples\pnskeywords>%AXIS2_HOME%\bin\WSDL2Java -uri
> keyword.wsdl****
>
> -p com.personalnetsearch.plugin.keys.axis2 -pn “IndustryListRequest” -d
> adb –s****
>
> ** **
>
> Still I get:****
>
> ** **
>
> C:\axis2-1.6.2\samples\pnskeywords>%AXIS2_HOME%\bin\WSDL2Java -uri
> keyword.wsdl****
>
> -p com.personalnetsearch.plugin.keys.axis2 -pn "IndustryListRequest" -d
> adb -s****
>
> 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: *No port found for the given name
> :IndustryListRequest*
>
>         at
> org.apache.axis2.description.WSDL11ToAxisServiceBuilder.findBinding(W****
>
> SDL11ToAxisServiceBuilder.java:1050)****
>
>         at
> org.apache.axis2.description.WSDL11ToAxisServiceBuilder.populateServi****
>
> ce(WSDL11ToAxisServiceBuilder.java:341)****
>
>         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****
>
> ** **
>
> What might I be doing wrong?  IndustryListRequest is in the WSDL file as a
> port type.****
>
> ** **
>
> Alan****
>
> ** **
>
> *From:* Kishanthan Thangarajah [mailto:kshanth2101@gmail.com]
> *Sent:* July-22-12 1:41 PM
>
> *To:* java-user@axis.apache.org
> *Subject:* Re: newbie on WSDL2Java and WSDL file****
>
> ** **
>
> ** **
>
> On Sun, Jul 22, 2012 at 5:51 AM, Alan Shiers <as...@eastlink.ca> wrote:*
> ***
>
> 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.****
>
> ** **
>
> This is because wsdl2java only support/generate code for one portType [1].
> But in your case, you have used three different portType's
> for three different bindings. So i think you can still generate code for
> each port by using the port-name "-pn" option. You will have to run
> wsdljava three times with different port names. This is my suggestion.****
>
> ** **
>
> Thanks,****
>
> Kishanthan.****
>
> [1] https://issues.apache.org/jira/browse/AXIS2-4654****
>
>  ****
>
> 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 <as...@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****
>
>  ****
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org****
>
> ** **
>

RE: newbie on WSDL2Java and WSDL file

Posted by Alan Shiers <as...@eastlink.ca>.
Thanks for the reply.  I tried your suggestion and from the command prompt
typed:

 

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

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

 

I even tried:

 

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

-p com.personalnetsearch.plugin.keys.axis2 -pn "IndustryListRequest" -d adb
-s

 

Still I get:

 

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

-p com.personalnetsearch.plugin.keys.axis2 -pn "IndustryListRequest" -d adb
-s

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: No port found for the given name
:IndustryListRequest

        at
org.apache.axis2.description.WSDL11ToAxisServiceBuilder.findBinding(W

SDL11ToAxisServiceBuilder.java:1050)

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

ce(WSDL11ToAxisServiceBuilder.java:341)

        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

 

What might I be doing wrong?  IndustryListRequest is in the WSDL file as a
port type.

 

Alan

 

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

 

 

On Sun, Jul 22, 2012 at 5:51 AM, Alan Shiers <as...@eastlink.ca> wrote:

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.

 

This is because wsdl2java only support/generate code for one portType [1].
But in your case, you have used three different portType's for three
different bindings. So i think you can still generate code for each port by
using the port-name "-pn" option. You will have to run wsdljava three times
with different port names. This is my suggestion.

 

Thanks,

Kishanthan.

[1] https://issues.apache.org/jira/browse/AXIS2-4654

 

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 <as...@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

 



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
For additional commands, e-mail: java-user-help@axis.apache.org

 


Re: newbie on WSDL2Java and WSDL file

Posted by Kishanthan Thangarajah <ks...@gmail.com>.
On Sun, Jul 22, 2012 at 5:51 AM, Alan Shiers <as...@eastlink.ca> wrote:

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

This is because wsdl2java only support/generate code for one portType [1].
But in your case, you have used three different portType's
for three different bindings. So i think you can still generate code for
each port by using the port-name "-pn" option. You will have to run
wsdljava three times with different port names. This is my suggestion.

Thanks,
Kishanthan.
[1] https://issues.apache.org/jira/browse/AXIS2-4654

> ****
>
> ** **
>
> 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 <as...@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****
>
> ** **
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org
>

RE: newbie on WSDL2Java and WSDL file

Posted by Alan Shiers <as...@eastlink.ca>.
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 <as...@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

 


Re: newbie on WSDL2Java and WSDL file

Posted by Kishanthan Thangarajah <ks...@gmail.com>.
On Sat, Jul 21, 2012 at 2:20 AM, Alan Shiers <as...@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
>