users@jax-rpc.java.net

DII error with array of string

From: Mario Sánchez <mariomastar_at_hotmail.com>
Date: Mon, 26 Jul 2004 14:25:13 -0500
Hi, 
 
I change the helloservice and dii examples of the jwsdp1.3 tutorial to this: 
 
---HelloIF.java---- 
package helloservice; 
 
import java.rmi.Remote; 
import java.rmi.RemoteException; 
 
public interface HelloIF extends Remote { 
    public String[] sayHello(String s) throws RemoteException; 

 
-----HelloImpl.java----- 
package helloservice; 
 
public class HelloImpl implements HelloIF { 
 
    public String[] message = {"Hello","cadena1","cadena2"}; 
 
    public String[] sayHello(String s) { 
        message[1] = s; 
        return message; 
    } 

&nb! sp;!
----HelloClient.java---- 
package dii; 
 
import javax.xml.rpc.Call; 
import javax.xml.rpc.Service; 
import javax.xml.rpc.JAXRPCException; 
import javax.xml.namespace.QName; 
import javax.xml.rpc.ServiceFactory; 
import javax.xml.rpc.ParameterMode; 
 
public class HelloClient { 
 
    private static String qnameService = "MyHelloService"; 
    private static String qnamePort = "HelloIF"; 
 
    private static String BODY_NAMESPACE_VALUE = "urn:Foo"; 
    private static String ENCODING_STYLE_PROPERTY = "javax.xml.rpc.encodingstyle.namespace.uri";  
    private static String NS_XSD = "http://www.w3.org/2001/XMLSchema"; 
    private static String URI_ENCODIN! G = "http://schemas.xmlsoap.org/soap/encoding/"; 
 
    public static void main(String[] args) { 
  String[] result = null; 
        System.out.println("Endpoint address = " + args[0]); 
        try { 
            ServiceFactory factory = ServiceFactory.newInstance(); 
            Service service = factory.createService(new QName(qnameService)); 
            QName port = new QName(qnamePort); 
            Call call = service.createCall(port); 
            call.setTarge! tEndpointAddre! ss(args[0]); 
            call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true)); 
            call.setProperty(Call.SOAPACTION_URI_PROPERTY, ""); 
            call.setProperty(ENCODING_STYLE_PROPERTY, URI_ENCODING); 
            QName QNAME_TYPE_STRING = new QName(NS_XSD, "ArrayOfstring"); 
            call.setReturnType(QNAME_TYPE_STRING); 
            QName QNAME_TYPE_STRING2 = new QName(NS_XSD, "string"); 
            call.setOperationName(new QName(BODY_NAMESPACE_VALUE, "sayHello")); 
  !   !         call.addParameter("String_1", QNAME_TYPE_STRING2, ParameterMode.IN); 
            String[] params = { "Murph!" }; 
            result = (String[])call.invoke(params); 
            System.out.println(result[1]); 
        } catch (Exception ex) { 
            ex.printStackTrace(); 
        } 
    } 

 
and I got the following error: 
 
run-client: 
     [java] Endpoint address = http://localhost:8080/hello-jaxrpc/hello 
&nbs! p;&nbs! p;   [java] deserialization error: java.lang.NullPointerException 
     [java]     at com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:214) 
     [java]     at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:134) 
     [java]     at com.sun.xml.rpc.client.dii.CallInvokerImpl._readFirstBodyElement(CallInvokerImpl.java:222) 
     [java]     at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:158) 
     [java]     at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61) 
     [java]     at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:353! )&nb! sp;
     [java]     at dii.HelloClient.main(Unknown Source) 
 
     [java] CAUSE: 
 
     [java] java.lang.NullPointerException 
     [java]     at com.sun.xml.rpc.encoding.soap.SOAPResponseSerializer.doDeserialize(SOAPResponseSerializer.java:149) 
     [java]     at com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:167) 
     [java]     at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:134) 
     [java]     at com.sun.xml.rpc.client.dii.CallInvokerImpl._readFirstBodyElement(CallInvokerImpl.java:222) 
     [java]     at com.sun.x! ml! .rpc.client.StreamingSender._send(StreamingSender.java:158) 
     [java]     at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61) 
     [java]     at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:353) 
     [java]     at dii.HelloClient.main(Unknown Source) 
 
     [java] CAUSE: 
 
     [java] java.lang.NullPointerException 
     [java]     at com.sun.xml.rpc.encoding.soap.SOAPResponseSerializer.doDeserialize(SOAPResponseSerializer.java:149) 
     [java]     at com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:167) 
     [java]     at co! ! m.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:134) 
     [java]     at com.sun.xml.rpc.client.dii.CallInvokerImpl._readFirstBodyElement(CallInvokerImpl.java:222) 
     [java]     at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:158) 
     [java]     at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61) 
     [java]     at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:353) 
     [java]     at dii.HelloClient.main(Unknown Source) 
 
With the dynamic proxy client I have not problems. why ? 
please help me, 
 
Thank you, 
 
Mario Sánchez


MSN! Amor Busca tu ˝ naranja --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@jax-rpc.dev.java.net For additional commands, e-mail: users-help@jax-rpc.dev.java.net