detail.php
OW2 Forge: Detail: 304559 Artix-Celtix inteop issue -- occuringstruct1 type test failed

Advanced - Powered by Google


   
Log In
New Account
  
 
Home
My Page
Project Tree
Project Openings
Celtix ESB
          
 
 
Summary
Forums
Tracker
Lists
Tasks
News
Files
SVN
                
 

Tracker: Bugs

Submit New | Browse | Admin | ExportToXml

[ #304559 ] Artix-Celtix inteop issue -- occuringstruct1 type test failed

Date:
2006-01-25 21:30
Priority:
5
Submitted By:
Daisy Li (daisyli)
Assigned To:
Ajay Paibir (apaibir)
Category:
None
State:
Open
Summary:
Artix-Celtix inteop issue -- occuringstruct1 type test failed

Detailed description:
The OccuringStruct1 interop test failed. Pure Artix or Celtix work fine. In celtix soap message, nillable element -- varFloat is missing. The following is schema type definition, stack trace, artix soap messages and celtix soap message. <complexType name="OccuringStruct1"> <sequence minOccurs="0" maxOccurs="unbounded"> <element name="varFloat" type="xsd:float" nillable="true"/> <element name="varInt" type="xsd:int" minOccurs="1" maxOccurs="10"/> <element name="varString" type="xsd:string"/> </sequence> </complexType> Error messages: ================= Exception in thread "main" java.rmi.RemoteException: javax.xml.ws.WebServiceExce ption: Unmarshalling error org.objectweb.celtix.bus.jaxws.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder. java:243) org.objectweb.celtix.bus.jaxws.io.NodeDataReader.readWrapper (NodeDataReader.java :67) org.objectweb.celtix.bus.bindings.soap.SOAPBindingImpl.getParts (SOAPBindingImpl. java:402) org.objectweb.celtix.bus.bindings.soap.SOAPBindingImpl.unmarshalMessage (SOAPBind ingImpl.java:296) org.objectweb.celtix.bus.bindings.soap.SOAPServerBinding.unmarshal (SOAPServerBin ding.java:132) org.objectweb.celtix.bindings.AbstractServerBinding.invokeOnMethod (AbstractServe rBinding.java:327) org.objectweb.celtix.bindings.AbstractServerBinding.dispatch (AbstractServerBindi ng.java:188) org.objectweb.celtix.bindings.AbstractServerBinding$1.dispatch (AbstractServerBin ding.java:85) org.objectweb.celtix.bus.transports.http.JettyHTTPServerTransport.serviceReque st (JettyHTTPServerTransport.java:197) org.objectweb.celtix.bus.transports.http.JettyHTTPServerTransport.doService (Jett yHTTPServerTransport.java:173) org.objectweb.celtix.bus.transports.http.JettyHTTPServerEngine$1.handle (JettyHTT PServerEngine.java:148) org.mortbay.http.HttpContext.handle(HttpContext.java:1530) org.mortbay.http.HttpContext.handle(HttpContext.java:1482) org.mortbay.http.HttpServer.service(HttpServer.java:909) org.mortbay.http.HttpConnection.service(HttpConnection.java:816) org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982) org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244) org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) ; nested exception is: com.iona.jbus.ntv.NativeFaultException: javax.xml.ws.WebServiceException : Unmarshalling error org.objectweb.celtix.bus.jaxws.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder. java:243) org.objectweb.celtix.bus.jaxws.io.NodeDataReader.readWrapper (NodeDataReader.java :67) org.objectweb.celtix.bus.bindings.soap.SOAPBindingImpl.getParts (SOAPBindingImpl. java:402) org.objectweb.celtix.bus.bindings.soap.SOAPBindingImpl.unmarshalMessage (SOAPBind ingImpl.java:296) org.objectweb.celtix.bus.bindings.soap.SOAPServerBinding.unmarshal (SOAPServerBin ding.java:132) org.objectweb.celtix.bindings.AbstractServerBinding.invokeOnMethod (AbstractServe rBinding.java:327) org.objectweb.celtix.bindings.AbstractServerBinding.dispatch (AbstractServerBindi ng.java:188) org.objectweb.celtix.bindings.AbstractServerBinding$1.dispatch (AbstractServerBin ding.java:85) org.objectweb.celtix.bus.transports.http.JettyHTTPServerTransport.serviceReque st (JettyHTTPServerTransport.java:197) org.objectweb.celtix.bus.transports.http.JettyHTTPServerTransport.doService (Jett yHTTPServerTransport.java:173) org.objectweb.celtix.bus.transports.http.JettyHTTPServerEngine$1.handle (JettyHTT PServerEngine.java:148) org.mortbay.http.HttpContext.handle(HttpContext.java:1530) org.mortbay.http.HttpContext.handle(HttpContext.java:1482) org.mortbay.http.HttpServer.service(HttpServer.java:909) org.mortbay.http.HttpConnection.service(HttpConnection.java:816) org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982) org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244) org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) ,Category:UNKNOWN,Source:SERVER,Status:MAYBE at com.iona.jbus.runtime.ServiceInvokeHandler.invoke (ServiceInvokeHandle r.java:678) at $Proxy0.testOccuringStruct1(Unknown Source) at TypeTestDemo.main(TypeTestDemo.java:2603) Caused by: com.iona.jbus.ntv.NativeFaultException: javax.xml.ws.WebServiceExcept ion: Unmarshalling error org.objectweb.celtix.bus.jaxws.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder. java:243) org.objectweb.celtix.bus.jaxws.io.NodeDataReader.readWrapper (NodeDataReader.java :67) org.objectweb.celtix.bus.bindings.soap.SOAPBindingImpl.getParts (SOAPBindingImpl. java:402) org.objectweb.celtix.bus.bindings.soap.SOAPBindingImpl.unmarshalMessage (SOAPBind ingImpl.java:296) org.objectweb.celtix.bus.bindings.soap.SOAPServerBinding.unmarshal (SOAPServerBin ding.java:132) org.objectweb.celtix.bindings.AbstractServerBinding.invokeOnMethod (AbstractServe rBinding.java:327) org.objectweb.celtix.bindings.AbstractServerBinding.dispatch (AbstractServerBindi ng.java:188) org.objectweb.celtix.bindings.AbstractServerBinding$1.dispatch (AbstractServerBin ding.java:85) org.objectweb.celtix.bus.transports.http.JettyHTTPServerTransport.serviceReque st (JettyHTTPServerTransport.java:197) org.objectweb.celtix.bus.transports.http.JettyHTTPServerTransport.doService (Jett yHTTPServerTransport.java:173) org.objectweb.celtix.bus.transports.http.JettyHTTPServerEngine$1.handle (JettyHTT PServerEngine.java:148) org.mortbay.http.HttpContext.handle(HttpContext.java:1530) org.mortbay.http.HttpContext.handle(HttpContext.java:1482) org.mortbay.http.HttpServer.service(HttpServer.java:909) org.mortbay.http.HttpConnection.service(HttpConnection.java:816) org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982) org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244) org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) ,Category:UNKNOWN,Source:SERVER,Status:MAYBE at com.iona.jbus.ntv.NativeClientOperation.invoke(Native Method) at com.iona.jbus.ntv.NativeClientOperation.invoke (NativeClientOperation. java:78) at com.iona.jbus.runtime.ServiceInvokeHandler.invoke (ServiceInvokeHandle r.java:633) ... 2 more Pure celtix soap messages: ========================== <?xml version="1.0" encoding="utf-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns4:testOccuringStruct1 xmlns:ns4=http://objectweb.org/type_test/doc xmlns:ns5="http://objectweb.org/type_test/types"> <ns4:x> <ns5:varInt>1</ns5:varInt> <ns5:varInt>2</ns5:varInt> <ns5:varString>x1</ns5:varString> </ns4:x> <ns4:y> <ns5:varString>y</ns5:varString> <ns5:varInt>11</ns5:varInt> <ns5:varInt>22</ns5:varInt> </ns4:y> </ns4:testOccuringStruct1> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <?xml version="1.0" encoding="utf-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns4:testOccuringStruct1Response xmlns:ns4=http://objectweb.org/type_test/doc xmlns:ns5="http://objectweb.org/type_test/types"> <ns4:return> <ns5:varInt>1</ns5:varInt> <ns5:varInt>2</ns5:varInt> <ns5:varString>x1</ns5:varString> </ns4:return> <ns4:y> <ns5:varInt>1</ns5:varInt> <ns5:varInt>2</ns5:varInt> <ns5:varString>x1</ns5:varString> </ns4:y> <ns4:z> <ns5:varString>y</ns5:varString> <ns5:varInt>11</ns5:varInt> <ns5:varInt>22</ns5:varInt> </ns4:z> </ns4:testOccuringStruct1Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope> pure Artix soap messages: ========================= <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:m1="http://objectweb.org/type_test/doc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <m1:testOccuringStruct1> <m1:x> <m2:varFloat xsi:nil="true" xmlns:m2="http://objectweb.org/type_test/types"> </m2:varFloat> <m3:varInt xmlns:m3="http://objectweb.org/type_test/types">1</m3:varInt> <m4:varInt xmlns:m4="http://objectweb.org/type_test/types">2</m4:varInt> <m5:varString xmlns:m5="http://objectweb.org/type_test/types">x1</m5:varString> </m1:x> <m1:y> <m6:varFloat xsi:nil="true" xmlns:m6="http://objectweb.org/type_test/types"></m6:varFloat> <m7:varInt xmlns:m7="http://objectweb.org/type_test/types">11</m7:varInt> <m8:varInt xmlns:m8="http://objectweb.org/type_test/types">22</m8:varInt> <m9:varString xmlns:m9="http://objectweb.org/type_test/types">y</m9:varString> </m1:y> </m1:testOccuringStruct1> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:m1="http://objectweb.org/type_test/doc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <m1:testOccuringStruct1Response> <m1:return> <m2:varFloat xsi:nil="true" xmlns:m2="http://objectweb.org/type_test/types"></m2:varFloat> <m3:varInt xmlns:m3="http://objectweb.org/type_test/types">1</m3:varInt> <m4:varInt xmlns:m4="http://objectweb.org/type_test/types">2</m4:varInt> <m5:varString xmlns:m5="http://objectweb.org/type_test/types">x1</m5:varString> </m1:return> <m1:y> <m6:varFloat xsi:nil="true" xmlns:m6="http://objectweb.org/type_test/types"></m6:varFloat> <m7:varInt xmlns:m7="http://objectweb.org/type_test/types">1</m7:varInt> <m8:varInt xmlns:m8="http://objectweb.org/type_test/types">2</m8:varInt> <m9:varString xmlns:m9="http://objectweb.org/type_test/types">x1</m9:varString> </m1:y> <m1:z> <m10:varFloat xsi:nil="true" xmlns:m10="http://objectweb.org/type_test/types"></m10:varFloat> <m11:varInt xmlns:m11="http://objectweb.org/type_test/types">11</m11:varInt> <m12:varInt xmlns:m12="http://objectweb.org/type_test/types">22</m12:varInt> <m13:varString xmlns:m13="http://objectweb.org/type_test/types">y</m13:varString> </m1:z> </m1:testOccuringStruct1Response> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Add A Comment:

Please login

Followup

Message
Date: 2006-04-21 06:01
Sender: maomaode
Logged In: YES 
user_id=7597

It's a known issue in jaxb, you can find the bug description
in http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6295486
and also there is a forum post in
http://forums.java.net/jive/thread.jspa?messageID=99289
Date: 2006-02-09 13:56
Sender: apaibir
Logged In: YES 
user_id=6842

In the earliar followup the issue (a) is not right. SOAP 
Fault is generated. So it is a JAXB issue completely.
Date: 2006-02-09 13:17
Sender: apaibir
Logged In: YES 
user_id=6842

There are three issues here 
a) A SOAP Fault should have been sent back to the Artix 
client.
b) The Generated code for OccuringStruct1 is not proper. 
The schema indicates it is a occuring sequence of Float, 
Int, String. However the XMLElement annotation on the 
OccuringStruct1 have the order as Int, String, Float. 
Since the data is populated in the right order, the JAXB 
Unmarshaller throws a exception.
c) Even if the data is populated in the order expected by 
the OccuringStruct1 class, 
Further if the float elements has the xs:nil attribute set 
to true. Then JAXB unmarshaller returns(without 
exceptions) but now adds more nillable float elements than 
actually present in the SOAP message.

(b) and (c) are to do with JAXB Implementation.
Date: 2006-02-01 16:07
Sender: apaibir
Logged In: YES 
user_id=6842

There is a marshal/unmarshall issue in JAXBEncoderDecoder.

Attached Files:

Name Description Download
celtix_server_impl.java Download
artix_client.java Download
celtix_generated_type_OccuringStruct1.zip Download
artix_generated_type_OccuringStruct1.zip Download

Changes:

Field Old Value Date By
artifact_group_idNone2006-04-26 23:39adisakala
resolution_idDuplicate2006-03-27 17:21apaibir
resolution_idNone2006-02-09 13:17apaibir
assigned_tonone2006-02-01 16:07apaibir
File Added401: artix_generated_type_OccuringStruct1.zip2006-01-25 22:30daisyli
File Added400: celtix_generated_type_OccuringStruct1.zip2006-01-25 22:30daisyli
File Added399: artix_client.java2006-01-25 22:29daisyli
File Added398: celtix_server_impl.java2006-01-25 22:29daisyli
artifact_group_idMilestone 32006-01-25 22:21daisyli
artifact_group_idNone2006-01-25 21:57adisakala

Copyright © 1999-2008, OW2 Consortium | contact | You have a difficulty, a problem ? Please report an issue using your OW2 forge account credentials