Bugs item #1069371, was opened at 2004-11-19 12:10 Message generated for change (Settings changed) made by tdiesler You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=1069371&group_id=22866
Category: JBossWS Group: None >Status: Closed Resolution: Rejected Priority: 5 Submitted By: Ekta (ektak) Assigned to: Thomas Diesler (tdiesler) Summary: Problem with Deserialzing Arrays by Axis Initial Comment: Hello, I am getting the following error: " org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize " I am using AXIS 1.1,Jboss4.0 and JbossWs with doc/lit Style. I have written a small HelloWorld application that has one method 'printMessage' that takes an array of ' Message '( user defined class ) as an argument. Without using the array everything works fine . However when I add my customized type's Array I get the above error. Below is a summary of what was done: STEP - 1 :- Created a impl class and Client class ========= ------------------------------------------------------- ---------------------------- HelloWorld_Impl.java ------------------------------------------------------- ---------------------------- package com.myapp; import java.rmi.RemoteException; import javax.xml.rpc.*; import javax.xml.rpc.server.ServiceLifecycle; public class HelloWorld_Impl implements HelloWorld, ServiceLifecycle { public String printMessage(ArrayOfMessage arrayOfMessage) { System.out.println("In printMessage..."); return arrayOfMessage.toString(); } } ------------------------------------------------------- ---------------------------- HelloWorldClient.java ------------------------------------------------------- ---------------------------- package com.myapp; public class HelloWorldClient { public static void main(String args[]) throws Exception { HelloWorldServiceLocator locator = new HelloWorldServiceLocator(); Message message = new Message(); message.setMessage("HelloWorld"); Message array[] = { message }; ArrayOfMessage arrayOfMessage = new ArrayOfMessage (); arrayOfMessage.setMessages(array); locator.getHelloWorld().printMessage(arrayOfMessage); } } STEP - 2 :- configured jaxrpc- mapping.xml,webservices.xml,web.xml ========== ------------------------------------------------------- ---------------------------- jaxrpc-mapping.xml ------------------------------------------------------- ---------------------------- <?xml version='1.0' encoding='UTF-8' ?> <java-wsdl-mapping xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:ns1="http://ekta.com" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mappi ng_1_1.xsd" version="1.1"> <package-mapping> <package-type>com.myapp</package-type> http://ekta.com/HelloWorld </package-mapping> <package-mapping> <package-type>com.myapp</package-type> http://ekta.com </package-mapping> <java-xml-type-mapping> <java-type>com.myapp.ArrayOfMessage</java-type> <root-type-qname>ns1:in0</root-type-qname> <qname-scope>element</qname-scope> </java-xml-type-mapping> <java-xml-type-mapping> <java-type>java.lang.String</java-type> <root-type-qname>ns1:printMessageReturn</root-type- qname> <qname-scope>element</qname-scope> </java-xml-type-mapping> </java-wsdl-mapping> ------------------------------------------------------- ---------------------------- webservices.xml ------------------------------------------------------- ---------------------------- <?xml version='1.0' encoding='UTF-8' ?> <webservices xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:impl="http://com.myapp/simple-ws4ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_web_services _1_1.xsd" version="1.1"> <webservice-description> <webservice-description- name>HelloWorldService</webservice-description-name> <wsdl-file>WEB-INF/wsdl/hello.wsdl</wsdl-file> <jaxrpc-mapping-file>WEB-INF/jaxrpc- mapping.xml</jaxrpc-mapping-file> <port-component> <port-component-name>HelloWorld</port-component- name> <wsdl-port>HelloWorld</wsdl-port> <service-endpoint- interface>com.myapp.HelloWorld</service-endpoint- interface> <service-impl-bean> <servlet-link>HelloWorld</servlet-link> </service-impl-bean> </port-component> </webservice-description> ------------------------------------------------------- ---------------------------- web.xml ------------------------------------------------------- ---------------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet-name>HelloWorld</servlet-name> <servlet-class>com.myapp.HelloWorld_Impl</servlet- class> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/services/HelloWorld</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app> STEP 3 :- after running java2wsdl tool hello.wsdl file is created. ======= ------------------------------------------------------- ---------------------------- hello.wsdl ------------------------------------------------------- ---------------------------- <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://ekta.com" xmlns:impl="http://ekta.com" xmlns:intf="http://ekta.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encodi ng/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> </wsdl:types> <wsdl:message name="printMessageRequest"> <wsdl:part name="in0" element="impl:in0"/> </wsdl:message> <wsdl:message name="printMessageResponse"> <wsdl:part name="printMessageReturn" element="impl:printMessageReturn"/> </wsdl:message> <wsdl:portType name="HelloWorld"> <wsdl:operation name="printMessage" parameterOrder="in0"> <wsdl:input name="printMessageRequest" message="impl:printMessageRequest"/> <wsdl:output name="printMessageResponse" message="impl:printMessageResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="HelloWorldSoapBinding" type="impl:HelloWorld"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="printMessage"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="printMessageRequest"> <wsdlsoap:body use="literal" namespace="http://ekta.com"/> </wsdl:input> <wsdl:output name="printMessageResponse"> <wsdlsoap:body use="literal" namespace="http://ekta.com"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="HelloWorldService"> <wsdl:port name="HelloWorld" binding="impl:HelloWorldSoapBinding"> <wsdlsoap:address location="http://localhost:8080/simple- ws4ee/services/HelloWorld"/> </wsdl:port> </wsdl:service> </wsdl:definitions> ------------------------------------------------------- ---------------------------- Problems ======== 1) after deployment when i run HelloWorldClient.class i get the following error. [java] javax.xml.rpc.JAXRPCException: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. [java] at org.apache.axis.message.SOAPFaultBuilder.createFault (SOAPFaultBuilder.java:304) [java] at org.apache.axis.message.SOAPFaultBuilder.endElement (SOAPFaultBuilder.java:143) [java] at org.apache.axis.encoding.DeserializationContextImpl.endE lement(DeserializationContextImpl.java:1250) [java] at org.apache.crimson.parser.Parser2.maybeElement (Parser2.java:1712) [java] at org.apache.crimson.parser.Parser2.content (Parser2.java:1963) [java] at org.apache.crimson.parser.Parser2.maybeElement (Parser2.java:1691) [java] at org.apache.crimson.parser.Parser2.content (Parser2.java:1963) [java] at org.apache.crimson.parser.Parser2.maybeElement (Parser2.java:1691) [java] at org.apache.crimson.parser.Parser2.parseInternal (Parser2.java:667) [java] at org.apache.crimson.parser.Parser2.parse (Parser2.java:337) [java] at org.apache.crimson.parser.XMLReaderImpl.parse (XMLReaderImpl.java:448) [java] at javax.xml.parsers.SAXParser.parse (SAXParser.java:345) [java] at org.apache.axis.encoding.DeserializationContextImpl.pars e(DeserializationContextImpl.java:257) [java] at org.apache.axis.MessagePart.getAsSOAPEnvelope (MessagePart.java:655) [java] at org.apache.axis.Message.getSOAPEnvelope (Message.java:432) [java] at org.apache.axis.client.Call.invokeEngine (Call.java:3062) [java] at org.apache.axis.client.Call.invoke (Call.java:3024) [java] at org.apache.axis.client.Call.invoke (Call.java:2619) [java] at org.apache.axis.client.Call.invoke (Call.java:2524) [java] at org.apache.axis.client.Call.invokeInternal (Call.java:1976) [java] at org.apache.axis.client.Call.invoke (Call.java:1917) [java] at com.myapp.HelloWorldSoapBindingStub.printMessage (Unknown Source) [java] at com.myapp.HelloWorldClient.main (HelloWorldClient.java:17) [java] Exception in thread "main" [java] Java Result: 1 ---------------------------------------------------------------------- Comment By: Thomas Diesler (tdiesler) Date: 2004-11-25 14:21 Message: Logged In: YES user_id=423364 Your stack trace shows an problem in Axis. Are you using standalone Axis? If yes, this is an Axis issue. If you are using JBossWS on the client side as well, then Axis service locators don't enter the game. They are not WS4EE compliant, Axis propriatary and hence not portable. Can you provide a sime WS4EE deployment that shows the problem? There are examples of marshalling arrays on the wiki and in the jboss testsuite. I am rejecting this issue for now. If you can provide a deployment that uses JBossWS on the client side, feel free to reopen it again. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=1069371&group_id=22866 ------------------------------------------------------- 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://productguide.itmanagersjournal.com/ _______________________________________________ JBoss-Development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development