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 Plorks mail <pl...@hotmail.com> on 2006/03/08 17:49:46 UTC

help with byte[]


i have these methods

public static byte[] compress(String string) throws IOException
{
...
byte[] compressedData = bos.toByteArray();
return compressedData
}


public static String unCompress(byte [] bytes)
{
...
byte[] decompressedData = bos.toByteArray();
String uncompressed = new String(decompressedData);
return uncompressed;
}

Created a webservice in the wsdl i have this
...

- <element name="compressResponse">
- <complexType>
- <sequence>
  <element name="compressReturn" type="xsd:base64Binary" />
  </sequence>
  </complexType>
  </element>

...


when i call the WS i get a null value

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(endpoint);

call.setOperationName("squashString");

byte[] bytes = (byte[]) call.invoke(new Object[] {uncompressed});


but if i do this (call.invoke(new Object[] {uncompressed})) and inspect the 
result i get what i expect


if i do this System.out.println(call.invoke(new Object[] 
{uncompressed}).getClass());

is comes back as class java.lang.String

i need to return a byte[] from the call.  i need to use the byte [] in the 
next call unCompress

can someone show me how i convert a string to a byte[] so i can use it in 
the next method

Can anyone help me out as i'm a bit stuck

many thanks

_________________________________________________________________
The new MSN Search Toolbar now includes Desktop search! 
http://toolbar.msn.co.uk/


Re: help with byte[]

Posted by Plorks mail <pl...@hotmail.com>.
i've written a class with 2 methods in it compress and uncompress and i've 
used the examples from java almanac


http://javaalmanac.com/egs/java.util.zip/CompArray.html

and

http://javaalmanac.com/egs/java.util.zip/DecompArray.html


I've then done java2wsdl to create the wsdl file


Now i'm trying to cal lthe 2 methods using the web service

To call the compress method i'm just using this

String uncompressed = "some string in here to compress";

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(endpoint);

call.setOperationName("compress");

byte[] a = ((String)call.invoke(new Object[] {uncompressed})).getBytes();



Then i'm using 'a' to pass to the uncompress method like this

Service service1 = new Service();

Call call1 = (Call) service1.createCall();

call1.setTargetEndpointAddress(endpoint);

call1.setOperationName("uncompress");

String st = (String) call1.invoke(new Object[] {a});


But the 2nd call just hangs




<element name="compress">
    <complexType>
     <sequence>
      <element name="string" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="compressResponse">
    <complexType>
     <sequence>
      <element name="compressReturn" type="xsd:base64Binary"/>
     </sequence>
    </complexType>
   </element>
   <element name="uncompress">
    <complexType>
     <sequence>
      <element name="bytes" type="xsd:base64Binary"/>
     </sequence>
    </complexType>
   </element>
   <element name="uncompressResponse">
    <complexType>
     <sequence>
      <element name="uncompressReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>

thanks for any help



>From: robert <ro...@gmail.com>
>Reply-To: axis-user@ws.apache.org
>To: axis-user@ws.apache.org
>Subject: Re: help with byte[]
>Date: Wed, 8 Mar 2006 15:33:55 -0300
>
>I'm having a hard time following what you're trying to do. You could try:
>
>1) Showing the entire wsdl.
>2) List the steps of execution, ie, compressing / uncompressing, order of 
>web
>services calls etc.
>
>Are you using the code from the java almanac I posted a few days ago?
>
>Lastly, if the call is hanging, try putting the soap monitor or tcpmon on 
>the
>client / server to see where it hangs. Also try turning on logging on the
>client and server side.
>
>HTH,
>Robert
>http://www.braziloutsource.com/
>
>Em Quarta 08 Março 2006 14:14, o Plorks mail escreveu:
> > i've tried that
> >
> > byte [] a = ((String) call.invoke(new Object[] 
>{uncompressed})).getBytes();
> >
> > but when i use a in the next call it just hangs
> >
> > String st = (String) call1.invoke(new Object[] {a});
> >
> > >From: Michael <ax...@gmail.com>
> > >Reply-To: axis-user@ws.apache.org
> > >To: axis-user@ws.apache.org
> > >Subject: Re: help with byte[]
> > >Date: Wed, 8 Mar 2006 17:07:35 +0000
> > >
> > >String.getBytes()?
> > >
> > >On 08/03/06, Plorks mail <pl...@hotmail.com> wrote:
> > > > i have these methods
> > > >
> > > > public static byte[] compress(String string) throws IOException
> > > > {
> > > > ...
> > > > byte[] compressedData = bos.toByteArray();
> > > > return compressedData
> > > > }
> > > >
> > > >
> > > > public static String unCompress(byte [] bytes)
> > > > {
> > > > ...
> > > > byte[] decompressedData = bos.toByteArray();
> > > > String uncompressed = new String(decompressedData);
> > > > return uncompressed;
> > > > }
> > > >
> > > > Created a webservice in the wsdl i have this
> > > > ...
> > > >
> > > > - <element name="compressResponse">
> > > > - <complexType>
> > > > - <sequence>
> > > >   <element name="compressReturn" type="xsd:base64Binary" />
> > > >   </sequence>
> > > >   </complexType>
> > > >   </element>
> > > >
> > > > ...
> > > >
> > > >
> > > > when i call the WS i get a null value
> > > >
> > > > Service service = new Service();
> > > >
> > > > Call call = (Call) service.createCall();
> > > >
> > > > call.setTargetEndpointAddress(endpoint);
> > > >
> > > > call.setOperationName("squashString");
> > > >
> > > > byte[] bytes = (byte[]) call.invoke(new Object[] {uncompressed});
> > > >
> > > >
> > > > but if i do this (call.invoke(new Object[] {uncompressed})) and 
>inspect
> > >
> > >the
> > >
> > > > result i get what i expect
> > > >
> > > >
> > > > if i do this System.out.println(call.invoke(new Object[]
> > > > {uncompressed}).getClass());
> > > >
> > > > is comes back as class java.lang.String
> > > >
> > > > i need to return a byte[] from the call.  i need to use the byte [] 
>in
> > >
> > >the
> > >
> > > > next call unCompress
> > > >
> > > > can someone show me how i convert a string to a byte[] so i can use 
>it
> > >
> > >in
> > >
> > > > the next method
> > > >
> > > > Can anyone help me out as i'm a bit stuck
> > > >
> > > > many thanks
> > > >
> > > > _________________________________________________________________
> > > > The new MSN Search Toolbar now includes Desktop search!
> > > > http://toolbar.msn.co.uk/
> >
> > _________________________________________________________________
> > Are you using the latest version of MSN Messenger? Download MSN 
>Messenger
> > 7.5 today! http://messenger.msn.co.uk
>
>--

_________________________________________________________________
Be the first to hear what's new at MSN - sign up to our free newsletters! 
http://www.msn.co.uk/newsletters


Re: help with byte[]

Posted by robert <ro...@gmail.com>.
I'm having a hard time following what you're trying to do. You could try: 

1) Showing the entire wsdl. 
2) List the steps of execution, ie, compressing / uncompressing, order of web 
services calls etc. 

Are you using the code from the java almanac I posted a few days ago? 

Lastly, if the call is hanging, try putting the soap monitor or tcpmon on the 
client / server to see where it hangs. Also try turning on logging on the 
client and server side. 

HTH,
Robert
http://www.braziloutsource.com/

Em Quarta 08 Março 2006 14:14, o Plorks mail escreveu:
> i've tried that
>
> byte [] a = ((String) call.invoke(new Object[] {uncompressed})).getBytes();
>
> but when i use a in the next call it just hangs
>
> String st = (String) call1.invoke(new Object[] {a});
>
> >From: Michael <ax...@gmail.com>
> >Reply-To: axis-user@ws.apache.org
> >To: axis-user@ws.apache.org
> >Subject: Re: help with byte[]
> >Date: Wed, 8 Mar 2006 17:07:35 +0000
> >
> >String.getBytes()?
> >
> >On 08/03/06, Plorks mail <pl...@hotmail.com> wrote:
> > > i have these methods
> > >
> > > public static byte[] compress(String string) throws IOException
> > > {
> > > ...
> > > byte[] compressedData = bos.toByteArray();
> > > return compressedData
> > > }
> > >
> > >
> > > public static String unCompress(byte [] bytes)
> > > {
> > > ...
> > > byte[] decompressedData = bos.toByteArray();
> > > String uncompressed = new String(decompressedData);
> > > return uncompressed;
> > > }
> > >
> > > Created a webservice in the wsdl i have this
> > > ...
> > >
> > > - <element name="compressResponse">
> > > - <complexType>
> > > - <sequence>
> > >   <element name="compressReturn" type="xsd:base64Binary" />
> > >   </sequence>
> > >   </complexType>
> > >   </element>
> > >
> > > ...
> > >
> > >
> > > when i call the WS i get a null value
> > >
> > > Service service = new Service();
> > >
> > > Call call = (Call) service.createCall();
> > >
> > > call.setTargetEndpointAddress(endpoint);
> > >
> > > call.setOperationName("squashString");
> > >
> > > byte[] bytes = (byte[]) call.invoke(new Object[] {uncompressed});
> > >
> > >
> > > but if i do this (call.invoke(new Object[] {uncompressed})) and inspect
> >
> >the
> >
> > > result i get what i expect
> > >
> > >
> > > if i do this System.out.println(call.invoke(new Object[]
> > > {uncompressed}).getClass());
> > >
> > > is comes back as class java.lang.String
> > >
> > > i need to return a byte[] from the call.  i need to use the byte [] in
> >
> >the
> >
> > > next call unCompress
> > >
> > > can someone show me how i convert a string to a byte[] so i can use it
> >
> >in
> >
> > > the next method
> > >
> > > Can anyone help me out as i'm a bit stuck
> > >
> > > many thanks
> > >
> > > _________________________________________________________________
> > > The new MSN Search Toolbar now includes Desktop search!
> > > http://toolbar.msn.co.uk/
>
> _________________________________________________________________
> Are you using the latest version of MSN Messenger? Download MSN Messenger
> 7.5 today! http://messenger.msn.co.uk

-- 

Re: help with byte[]

Posted by Plorks mail <pl...@hotmail.com>.
i've tried that

byte [] a = ((String) call.invoke(new Object[] {uncompressed})).getBytes();

but when i use a in the next call it just hangs

String st = (String) call1.invoke(new Object[] {a});



>From: Michael <ax...@gmail.com>
>Reply-To: axis-user@ws.apache.org
>To: axis-user@ws.apache.org
>Subject: Re: help with byte[]
>Date: Wed, 8 Mar 2006 17:07:35 +0000
>
>String.getBytes()?
>
>On 08/03/06, Plorks mail <pl...@hotmail.com> wrote:
> >
> >
> > i have these methods
> >
> > public static byte[] compress(String string) throws IOException
> > {
> > ...
> > byte[] compressedData = bos.toByteArray();
> > return compressedData
> > }
> >
> >
> > public static String unCompress(byte [] bytes)
> > {
> > ...
> > byte[] decompressedData = bos.toByteArray();
> > String uncompressed = new String(decompressedData);
> > return uncompressed;
> > }
> >
> > Created a webservice in the wsdl i have this
> > ...
> >
> > - <element name="compressResponse">
> > - <complexType>
> > - <sequence>
> >   <element name="compressReturn" type="xsd:base64Binary" />
> >   </sequence>
> >   </complexType>
> >   </element>
> >
> > ...
> >
> >
> > when i call the WS i get a null value
> >
> > Service service = new Service();
> >
> > Call call = (Call) service.createCall();
> >
> > call.setTargetEndpointAddress(endpoint);
> >
> > call.setOperationName("squashString");
> >
> > byte[] bytes = (byte[]) call.invoke(new Object[] {uncompressed});
> >
> >
> > but if i do this (call.invoke(new Object[] {uncompressed})) and inspect 
>the
> > result i get what i expect
> >
> >
> > if i do this System.out.println(call.invoke(new Object[]
> > {uncompressed}).getClass());
> >
> > is comes back as class java.lang.String
> >
> > i need to return a byte[] from the call.  i need to use the byte [] in 
>the
> > next call unCompress
> >
> > can someone show me how i convert a string to a byte[] so i can use it 
>in
> > the next method
> >
> > Can anyone help me out as i'm a bit stuck
> >
> > many thanks
> >
> > _________________________________________________________________
> > The new MSN Search Toolbar now includes Desktop search!
> > http://toolbar.msn.co.uk/
> >
> >

_________________________________________________________________
Are you using the latest version of MSN Messenger? Download MSN Messenger 
7.5 today! http://messenger.msn.co.uk


Re: help with byte[]

Posted by Michael <ax...@gmail.com>.
String.getBytes()?

On 08/03/06, Plorks mail <pl...@hotmail.com> wrote:
>
>
> i have these methods
>
> public static byte[] compress(String string) throws IOException
> {
> ...
> byte[] compressedData = bos.toByteArray();
> return compressedData
> }
>
>
> public static String unCompress(byte [] bytes)
> {
> ...
> byte[] decompressedData = bos.toByteArray();
> String uncompressed = new String(decompressedData);
> return uncompressed;
> }
>
> Created a webservice in the wsdl i have this
> ...
>
> - <element name="compressResponse">
> - <complexType>
> - <sequence>
>   <element name="compressReturn" type="xsd:base64Binary" />
>   </sequence>
>   </complexType>
>   </element>
>
> ...
>
>
> when i call the WS i get a null value
>
> Service service = new Service();
>
> Call call = (Call) service.createCall();
>
> call.setTargetEndpointAddress(endpoint);
>
> call.setOperationName("squashString");
>
> byte[] bytes = (byte[]) call.invoke(new Object[] {uncompressed});
>
>
> but if i do this (call.invoke(new Object[] {uncompressed})) and inspect the
> result i get what i expect
>
>
> if i do this System.out.println(call.invoke(new Object[]
> {uncompressed}).getClass());
>
> is comes back as class java.lang.String
>
> i need to return a byte[] from the call.  i need to use the byte [] in the
> next call unCompress
>
> can someone show me how i convert a string to a byte[] so i can use it in
> the next method
>
> Can anyone help me out as i'm a bit stuck
>
> many thanks
>
> _________________________________________________________________
> The new MSN Search Toolbar now includes Desktop search!
> http://toolbar.msn.co.uk/
>
>