[ https://issues.apache.org/jira/browse/CXF-3239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12980097#action_12980097 ]
Freeman Fang edited comment on CXF-3239 at 1/11/11 8:36 AM: ------------------------------------------------------------ Hi Tosten, The problem actually is from that in your test2.idl, the const char definition is const char MYCHAR = '\0'; ascii code "0"(a subset of ascii code isn't visiable, they are control char) is used for control character and it's not intended to represent printable information, that said, this character is invisible, so can't transform this char into wsdl if I change it to const char MYCHAR = '\65'; then the idl2wsdl tool works as expected. the generated wsdl which contain this const char looks like <corba:typeMapping targetNamespace="http://cxf.apache.org/bindings/corba/idl/test2/typemap"> <corba:const xmlns:xs="http://www.w3.org/2001/XMLSchema" value="5" idltype="corba:char" name="Test2.MYCHAR" type="xs:byte"/> </corba:typeMapping> IMHO this is not a bug. Best Regards Freeman was (Author: ffang): Hi Tosten, The problem actually is from that in your test2.idl, the const char definition is const char MYCHAR = '\0'; ascii code "0" is used for control character and it's not intended to represent printable information, that said, this character is invisible, so can't transform this char into wsdl if I change it to const char MYCHAR = '\65'; then the idl2wsdl tool works as expected. the generated wsdl which contain this const char looks like <corba:typeMapping targetNamespace="http://cxf.apache.org/bindings/corba/idl/test2/typemap"> <corba:const xmlns:xs="http://www.w3.org/2001/XMLSchema" value="5" idltype="corba:char" name="Test2.MYCHAR" type="xs:byte"/> </corba:typeMapping> IMHO this is not a bug. Best Regards Freeman > idl2wsdl fails if const char is defined in IDL > ---------------------------------------------- > > Key: CXF-3239 > URL: https://issues.apache.org/jira/browse/CXF-3239 > Project: CXF > Issue Type: Bug > Components: Tooling > Affects Versions: 2.3.1 > Environment: CXF-2.3.1, Windows, idl2wsdl > Reporter: Torsten Mielke > Assignee: Freeman Fang > Attachments: test2.idl > > > Running > {code} > idl2wsdl test2.idl > {code} > on the attached IDL file, produces: > {code} > Error : org.apache.cxf.tools.common.ToolException: WSDLException: > faultCode=PARSER_ERROR: : javax.xml.bind.MarshalException > {code} > Running with additional -verbose option prints > {code} > idl2wsdl -verbose Test2.idl > idl2wsdl - Apache CXF 2.3.x-fuse-SNAPSHOT > ( module Test2 ( const char MYCHAR ) ) > Error : org.apache.cxf.tools.common.ToolException: WSDLException: > faultCode=PARSER_ERROR: : javax.xml.bind.MarshalException > org.apache.cxf.tools.common.ToolException: > org.apache.cxf.tools.common.ToolException: WSDLException: > faultCode=PARSER_ERROR: : javax.xml.bind.MarshalE > xception > at > org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.process(IDLToWSDLProcessor.java:88) > at > org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.process(IDLToWSDLProcessor.java:79) > at org.apache.cxf.tools.corba.IDLToWSDL.execute(IDLToWSDL.java:73) > at > org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) > at > org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:58) > at > org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:40) > at org.apache.cxf.tools.corba.IDLToWSDL.run(IDLToWSDL.java:162) > at org.apache.cxf.tools.corba.IDLToWSDL.main(IDLToWSDL.java:170) > Caused by: org.apache.cxf.tools.common.ToolException: WSDLException: > faultCode=PARSER_ERROR: : javax.xml.bind.MarshalException > at > org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.parseIDL(IDLToWSDLProcessor.java:219) > at > org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.process(IDLToWSDLProcessor.java:86) > ... 7 more > Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: : > javax.xml.bind.MarshalException > at > org.apache.cxf.wsdl.JAXBExtensionHelper.marshall(JAXBExtensionHelper.java:261) > at com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityElements(Unknown > Source) > at > org.apache.cxf.tools.corba.common.WSDLCorbaWriterImpl.printExtensibilityElements(WSDLCorbaWriterImpl.java:159) > at > org.apache.cxf.tools.corba.common.WSDLCorbaWriterImpl.printDefinition(WSDLCorbaWriterImpl.java:119) > at > org.apache.cxf.tools.corba.common.WSDLCorbaWriterImpl.writeWSDL(WSDLCorbaWriterImpl.java:77) > at > org.apache.cxf.tools.corba.common.WSDLUtils.writeWSDL(WSDLUtils.java:84) > at > org.apache.cxf.tools.corba.processors.idl.WSDLASTVisitor.writeDefinition(WSDLASTVisitor.java:268) > at > org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.writeDefinitions(IDLToWSDLProcessor.java:297) > at > org.apache.cxf.tools.corba.processors.idl.IDLToWSDLProcessor.parseIDL(IDLToWSDLProcessor.java:217) > ... 8 more > Caused by: javax.xml.bind.MarshalException > - with linked exception: > [com.ctc.wstx.exc.WstxIOException: Invalid null character in text to output] > at > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:322) > at > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:172) > at > org.apache.cxf.wsdl.JAXBExtensionHelper.marshall(JAXBExtensionHelper.java:258) > ... 16 more > Caused by: com.ctc.wstx.exc.WstxIOException: Invalid null character in text > to output > at > com.ctc.wstx.sw.BaseNsStreamWriter.doWriteAttr(BaseNsStreamWriter.java:515) > at > com.ctc.wstx.sw.BaseNsStreamWriter.writeAttribute(BaseNsStreamWriter.java:224) > at > org.apache.cxf.wsdl.PrettyPrintXMLStreamWriter.writeAttribute(PrettyPrintXMLStreamWriter.java:115) > at > com.sun.xml.bind.v2.runtime.output.XMLStreamWriterOutput.attribute(XMLStreamWriterOutput.java:131) > at > com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl.attribute(XmlOutputAbstractImpl.java:106) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.attribute(XMLSerializer.java:446) > at > com.sun.xml.bind.v2.runtime.property.AttributeProperty.serializeAttributes(AttributeProperty.java:99) > at > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeAttributes(ClassBeanInfoImpl.java:356) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:689) > at > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:65) > at > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:168) > at > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:155) > at > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696) > at > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:157) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:189) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:316) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:323) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:72) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494) > at > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315) > ... 18 more > Caused by: java.io.IOException: Invalid null character in text to output > at > com.ctc.wstx.api.InvalidCharHandler$FailingHandler.convertInvalidChar(InvalidCharHandler.java:51) > at com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:623) > at > com.ctc.wstx.sw.BufferingXmlWriter.writeAttrValue(BufferingXmlWriter.java:1037) > at > com.ctc.wstx.sw.BufferingXmlWriter.writeAttribute(BufferingXmlWriter.java:883) > at > com.ctc.wstx.sw.BaseNsStreamWriter.doWriteAttr(BaseNsStreamWriter.java:512) > ... 39 more > Error : org.apache.cxf.tools.common.ToolException: WSDLException: > faultCode=PARSER_ERROR: : javax.xml.bind.MarshalException > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.