I'm calling webservices from a stateless session bean, which returns an array of user defined objects(complex types) and it returns me a "No deserializer defined for array type " exception. This works fine, if I just use a normal J2SE client.
My environment(webservices client) is JBOSS 3.2.1 + apache axis + SLSB. http://www.jboss.org/wiki/Wiki.jsp?page=WSClientAppl says how to do this but I've some questions. 1) How do I generate the jaxrpc-mapping.xml file from a wsdl file? 2) where do I add the service-ref tags? 3) How do I package my jar file? 4) can someone please post a small example or tell me the issues with my example here? | ArrayOfUserDefinedObjects.jar | com.webservices.client.complex_types.ArrayOfUserDefinedObjectsRemoteHome | com.webservices.client.complex_types.ArrayOfUserDefinedObjectsRemote | com.webservices.client.complex_types.ArrayOfUserDefinedObjectsBean | com.webservices.server.complex_types.ArrayOfUserDefinedObjects | com.webservices.server.complex_types.ArrayOfUserDefinedObjectsService | com.webservices.server.complex_types.ArrayOfUserDefinedObjectsServiceLocator | com.webservices.server.complex_types.ArrayOfUserDefinedObjectsSoapBindingImpl | com.webservices.server.complex_types.ArrayOfUserDefinedObjectsSoapBindingStub | com.webservices.server.complex_types.ArrayOfUserDefinedObject | META-INF/ejb-jar.xml | META-INF/jboss.xml | META-INF/ArrayOfUserDefinedObjects.wsdl | | | | /** | * ArrayOfUserDefinedObjectsRemoteHome.java | */ | | package com.webservices.client.complex_types; | | public interface ArrayOfUserDefinedObjectsRemoteHome extends javax.ejb.EJBHome { | public javax.ejb.EJBObject create() throws javax.ejb.CreateException, java.rmi.RemoteException; | } | | | | /** | * ArrayOfUserDefinedObjectsRemote.java | */ | | package com.webservices.client.complex_types; | | public interface ArrayOfUserDefinedObjectsRemote extends javax.ejb.EJBObject { | public com.webservices.server.complext_types.ArrayOfUserDefinedObject[] getArrayOfUserDefinedObjects(String[] arrInput) throws RemoteException; | } | | | | /** | * ArrayOfUserDefinedObjectsBean.java | */ | | package com.webservices.client.complex_types; | | public class ArrayOfUserDefinedObjectsBean implements javax.ejb.SessionBean { | public com.webservices.server.complext_types.ArrayOfUserDefinedObject[] getArrayOfUserDefinedObjects(String[] arrInput) { | try { | com.webservices.server.complex_types.ArrayOfUserDefinedObjects objArrayOfUserDefinedObjects = new com.webservices.server.complex_types.ArrayOfUserDefinedObjectsServiceLocator().getArrayOfUserDefinedObjects(); | | return objArrayOfUserDefinedObjects.getArrayOfUserDefinedObjects(arrInput); | } catch(Exception e) { | e.printStackTrace(); | } | } | | public void ejbActivate() throws EJBException{} | | public void ejbPassivate() throws EJBException {} | | public void ejbRemove() throws EJBException{} | | public void setSessionContext(SessionContext arg0) throws EJBException {} | | public void ejbCreate() throws CreateException {} | } | | | <!--ejb-jar.xml--> | | | <?xml version="1.0"?> | <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'> | <ejb-jar> | <description>ArraofUserDefinedObjects WebServices Client</description> | <display-name>ArraofUserDefinedObjects WebServices Client</display-name> | <enterprise-beans> | <session> | <ejb-name>ejb/ArraofUserDefinedObjectsWebServicesClient</ejb-name> | <home>com.webservices.client.complex_types.ArrayOfUserDefinedObjectsRemoteHome</home> | <remote>com.webservices.client.complex_types.ArrayOfUserDefinedObjectsRemote</remote> | <ejb-class>com.webservices.client.complex_types.ArrayOfUserDefinedObjectsBean</ejb-class> | <session-type>Stateless</session-type> | <transaction-type>Bean</transaction-type> | </session> | | <!-- This declaration is obviously wrong. What is the correct way to do this??? --> | <service-ref> | <service-ref-name>ejb/ArraofUserDefinedObjectsWebServicesClient</service-ref-name> | <service-interface>com.webservices.client.complex_types.ArrayOfUserDefinedObjectsRemote</service-interface> | <wsdl-file>META-INF/ArrayOfUserDefinedObjects.wsdl</wsdl-file> | <service-qname>https://www.mywebsite.com/urn:array-of-user-defined-objects</service-qname> | </service-ref> | </enterprise-beans> | </ejb-jar> | | | <!-- jboss.xml --> | | <?xml version="1.0" encoding="UTF-8"?> | <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS//EN" "http://www.jboss.org/j2ee/dtd/jboss.dtd"> | | <jboss> | <enterprise-beans> | <session> | <ejb-name>ejb/ArraofUserDefinedObjectsWebServicesClient</ejb-name> | <jndi-name>ejb/ArraofUserDefinedObjectsWebServicesClient</jndi-name> | </session> | </enterprise-beans> | | | <!-- Again what is the correct way to do this? --> | <service-ref-mapping name="ejb/ArraofUserDefinedObjectsWebServicesClient"> | <port-info> | <wsdl-port namespaceURI="https://www.mywebsite.com/urn:array-of-user-defined-objects" localpart="https://www.mywebsite.com/urn:array-of-user-defined-objects"/> | <!--<stub-property> | <name>javax.xml.rpc.service.endpoint.address</name> | <value>http://localhost:8888/ejbws/timeport</value> | </stub-property> --> | </port-info> | </service-ref-mapping> | </jboss> | | Thanks Srikrishna Kalavacharla View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3870233#3870233 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3870233 ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user