Changing the WSDL from Document to Wrapped does not help eliminate the ClassCastException
 
Does anybody have any ideas what could be bugging this program?
 
In a message dated 7/15/2004 12:49:06 PM Eastern Standard Time, [EMAIL PROTECTED] writes:
I think you should be okay, but I am in the process of
migrating from rpc/encoded to wrapped/literal, so I can't
say for sure.

Anand

On Thu, 15 Jul 2004 [EMAIL PROTECTED] wrote:

:
: Can I get away with wrapped/literal for .net compatibilty?
:
: In a message dated 7/15/2004 10:28:41 AM Eastern Standard Time,
: [EMAIL PROTECTED] writes:
:
: James,
:
: I noticed the SOAP response I pasted below when I used  an
: interactive tool to send/receive SOAP messages. That tool
: is good for  testing, not production. For production, I
: switched to wrapped/literal, and  clients targetting that
: get back an array just fine.
:
: wrapped/literal  is supposed to be equivalent to document/literal
: (except, of course, for an  additional enclosing tag). Would
: it be possible for you to change your  server to wrapped/literal?
:
: Anand
:
: On Thu, 15 Jul 2004  [EMAIL PROTECTED] wrote:
:
: : Thank you for your responses,
: :
: : I was  wondering if you could tell me exactly what you did to get it ot
: work.
: : Currently an array is is the needed type in my java (yes I   use Doc/Lit),
: : however the error occurs anyway.
: :
: : Please  help,
: : James
: :
: : In a message dated 7/14/2004 7:00:42 PM Eastern  Standard Time,
: : [EMAIL PROTECTED] writes:
: :
: : James,
: :
: :  I'll back off from my claim that there's a  problem.
: : When I write a  class/interface that has a method
: : that returns a  string array, the  WSDL seems to indicate
: : that the return is a single  xsd:string. Even  the
: : stubs generated from the WSDL show a return of  String.
: :  However, when I actually invoke the method, I do get
: : back the   array, just in different  namespaces:
: :
: : ...
: :  <soapenv:Body>
: : <echoArrReturn   xmlns="urn:EchoDocLit">vlad</echoArrReturn>
: :  <ns1:echoArrReturn   xmlns:ns1="urn:EchoDocLit">is</ns1:echoArrReturn>
: :  <ns2:echoArrReturn
: xmlns:ns2="urn:EchoDocLit">sanguine</ns2:echoArrReturn>
: :  </soapenv:Body>
: : ...
: :
: : Perhaps  that's what the spec  for doc/lit indicates, but
: : it seems unintuitive to  me.
: :
: :  I'm moving over to wrapped/literal after this  experience;
: : perhaps  you could do the same.
: :
: : Anand
: :
: : On Wed, 14  Jul 2004,  Anand Natrajan wrote:
: :
: : : Is your web service exposed as a   document/literal?
: : : If yes, I face a similar problem - Axis 1.2 beta
: :  :  (June 14th release) makes the return type of the
: : : method a  String, instead  of String[]. The problem
: : : is right where I do  java2wsdl - even the WSDL,  I
: : : think, is incorrrect. The problem  does not occur
: : : with rpc/encoded,  rpc/literal or  wrapped/literal.
: : :
: : : I mailed a post about this a week or  so  ago but got
: : : no response. I'm compiling a test case along with
: : :  the  WSDL and sample clients to illustrate the issue.
: : : Next  post...
: : :
: : :  Anand
: : :
: : : On Wed, 14 Jul 2004  [EMAIL PROTECTED] wrote:
: : :
: : : :
: : : : I  have a very nice Axis  Web Service running in which I call a "query"
: : : :  function which  returns an arbitrarily sized array of type String[].
: : :  :
: : : : I  call the axis implementation file with the following call (Assume
: all
: : : : setup of service is correct):
: : : :
: : : :  java.lang.String[]  yes_list =
: :  (java.lang.String[])handler.query(groupName,
: : : : password,   accountName, conditions);
: : : :
: : : : handler.query is the function  which  returns the String[]. Regardless,
: : this
: : : : function,  while actually  successfully running through Axis, brings
: about
: :  the
: : : : following exception  on the local machine:
: : : :
: : : :  java.lang.ClassCastException
: : : :  java.lang.ClassCastException
: :  : : at $Proxy0.query(Unknown Source)
: : : :  at
: : : :
: :
: _2._0._0._127.axis.services.adminHandlerServicePort.adminHandlerClient2.main(adminHandler
: :  :  : Client2.java:77)
: : : :
: : : : I have checked the mailing list  for possible  causes but to know avail.
: : Would
: : : : somebody be  kind enough to offer  some advice as to how I could stop
: this
: : : :  message from coming up?
: : :  :
: : : : Below is my client  program:
: : : : package   placeholder.axis.services.clientHandlerServicePort;
: : : :
: : : : public  class  clientHandlerClient2
: : : : {
: : : : static String   url   =
: : : :   "_http://placeholder/axis/services/clientHandlerServicePort_
: :  (http://placeholder/axis/services/clientHandlerServicePort) ";
: : : :  static  String router  =  "_http://placeholder/axis/clientDirect_
: : : :   (http://placeholder/axis/clientDirect) ";
: : : :
: : : :     static String service =  "clientDirectService.wsdl";
: : : :
: :  : :
: : : :  public static void main(String[]  args)
: : : :  {
: : : : try
: : : : {
: : :  : System.err.println("This Client tests  getReport");
: : : :
: : : :   ServiceFactory sf =   ServiceFactory.newInstance();
: : : :  URL u = new URL(router + "/"  +  service);
: : : : QName  serviceName  = new   QName(url,"clientHandlerService");
: : : : Service s =   sf.createService(u,serviceName);
: : : :
: : : :       QName portName  = new   QName(url,"clientHandlerServicePort");
: : : :
: : : :     List  handlerChain =
: : : :   s.getHandlerRegistry().getHandlerChain(portName);
: : : : HandlerInfo hi  =  new  HandlerInfo(LoggingHandler.class,null,null);
: : : :   handlerChain.add(hi);
: : : :
: : : :           //Checking for  proper syntax of  call
: : : :  if   (args.length!=3)
: : : : {
: : : :  System.err.println("Incorrect  usage of  Client. Please use the
: :  following:");
: : : :  System.err.println("clientHandlerClient" + "  [Account Name]" +  "
: : : :  [Password]" + "     [Conditions]");
: : : : }
: : : : else
: : : :  {
: : : :  System.out.println("Thank You. Processing. . .");
: : : :   ClientHandler  handler = (ClientHandler) s.getPort(portName,
: : :  :  ClientHandler.class);
: : : :
: : : :   String  accountName    =  args[0];
: : : : String password   =  args[1];
: : : :  String conditions = args[2];
: : :  :
: : : : if(s == null)
: : : :  System.out.println("Service Not  Working Properly");
: : : :
: : : :    String[] queryList =  handler.query(accountName, password,
: : conditions);
: : : :
: : :  :   System.out.println("Testing in  csv  format");
: : :  : String format = "csv";
: : : :
: : : :    String[] rawQueryList  = handler.getQuery(accountName, password,
: : queryList,
: : : :  format);
: : : :
: : : :    System.out.println("Finished.");
: :  : : }
: : : : }
: : : :  catch(Exception  e)
: : : : {
: : : :  System.err.println("Error  running  Client:");
: : : :  System.err.println(e);
: : : :  e.printStackTrace();
: : : : }
: : : :  }
: : : : }
: : : :
: : : : I would  appreciate any comments on this  manner. I have checked the
: : : : axis-mailing  list for previous  solutions however have found none have
: : been  helpful  for
: :  : : me to diagnose.
: : : :
: : : : Sincere Thanks,
: : : : James   Crosson
: :
: :
: :
: :
: :
:
:
:
:
:
 

Reply via email to