Derek:
I've been scratching my head and I think I recall now.
The iWAS generates the WSDL for the web service on the fly from the
processed PCML. It is a very minimal WSDL and doesn't include length
checking.
With the test web services client in the HTTP Admin console you can
capture the generated WSDL, tinker with it, and send that to your
partner which consumes the web services.
By editing the generated WSDL you can add length checking to limit the
strings to the maximum size of the fields defined in the PCML. Then the
consumer of your web service, if they use your tinkered WSDL, will catch
the length error before calling your web service.
This technique is only helpful if you can provided the "improved" WSDL
of your web service as a guide so the web consumer won't crash the web
service by providing faulty parameters.
Generating the WSDL is consistent with IBM's goal of providing a wizard
which enables a system administrator to expose an RPGLE service program
as a web service.
I talked to the developers a year and a half ago. They were
"considering" exposing the WSDL so it could be modified. I haven't seen
any changes.
If iWAS is going to stick with generating WSDL on the fly then it should
use all the information in the PCML, including the length of strings, to
generate the WSDL.
One thing you can do to improve the WSDL is to pretty up the PCML field
names. You can use field names with mixed case, perhaps longer than 10
characters (not sure of that one) to make the generated WSDL more
readable.
Regards
Bill Blalock
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Derek Chow
Sent: Thursday, November 05, 2009 10:32 AM
To: Java Programming on and around the iSeries / AS400
Subject: RE: ProgramCallBean invoke method exception
Thanks, Bill! I tried your approach by removing the field length in the
data structure in the PCML definition, but still encountered the same
issue. It seems like I may need to do a bigger scope of modification if
I go with your approach. Not sure if I want to do that as we are running
out of time.
For now, I will monitor other returned parameter values, which are not
set, to determine any unknown exception. ... not an ideal solution but
should work.
Still I have no idea how to capture those exceptions from the invoke()
method of the IBM ProgramCallBean class.
Thanks,
Derek
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Blalock, Bill
Sent: Tuesday, November 03, 2009 7:21 AM
To: Java Programming on and around the iSeries / AS400
Subject: RE: ProgramCallBean invoke method exception
The Java code was generated based on the PCML definition, running on
WAS. I think the problem was that the value was longer than what is
allowed for the field per the definition.
I had a similar problem with an iWAS service. That problem was solved
by tweaking the XML that described the web service. In this case the
PCML didn't provide maximum length for the field. The error was trapped
before the generated Java code was executed by adding the maximum length
to the generated XML.
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Derek Chow
Sent: Monday, November 02, 2009 12:17 PM
To: Java Programming on and around the iSeries / AS400
Subject: RE: ProgramCallBean invoke method exception
Thank you for the link, Murali! I have not yet found info on the classes
and how to capture the issue. I will keep looking.
Thanks,
Derek
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Murali Rao
Sent: Tuesday, October 27, 2009 11:11 AM
To: 'Java Programming on and around the iSeries / AS400'
Subject: RE: ProgramCallBean invoke method exception
http://www-03.ibm.com/systems/i/software/toolbox/
Try the above link to see the document.
May be newer version is JTOpen
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Derek Chow
Sent: 27 October 2009 14:47
To: Java Programming on and around the iSeries / AS400
Subject: RE: ProgramCallBean invoke method exception
Thank you for the reply, Murali!
The Java code was generated based on the PCML definition, running on
WAS. I think the problem was that the value was longer than what is
allowed for the field per the definition. The invoke() method internally
did the validation and threw the exception before actually invoking the
program/service program call on iSeries.
The getErrParm() just returned null; the getStringReturnValue() was
throwing exception because the iSeries service program call did not
return integer.
Please elaborate how such exception can be caught. Also, I used to be
able to find the documentation of these classes/methods on the Internet.
They seem disappear. Do you know where I can find them? I appreciate
your help!
Derek
--
This is the Java Programming on and around the iSeries / AS400
(JAVA400-L) mailing list To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at
http://archive.midrange.com/java400-l.
Consider the environment and think before you print this email.
Registered Address: Fortis House Tollgate Eastleigh Hampshire SO53 3YA
Registered Number: 354568 England
Authorised and regulated by the Financial Services Authority
This e-mail together with any attachments are intended for the addressee
only and may be private and confidential. If you are not the intended
recipient, or the person responsible for delivering it to the intended
recipient, you must not open any attachments, or copy, disclose,
distribute, retain or use this e-mail, including any attachments, in any
way whatsoever; please return it to us immediately using the reply
facility on e-mail.
Consider the environment and think before you print this email.
As an Amazon Associate we earn from qualifying purchases.